你必须使用一个循环,或创建一个收集包装器,如Arrays.asList,它可以处理原始字符数组(或直接在字符串上)。
List list = new ArrayList();
Set unique = new HashSet();
for(char c : "abc".toCharArray()) {
list.add(c);
unique.add(c);
}
这里是一个像字符串包装器的Arrays.asList:
public List asList(final String string) {
return new AbstractList() {
public int size() { return string.length(); }
public Character get(int index) { return string.charAt(index); }
};
}
这个是一个不可变的列表,但。如果你想要一个可变的列表,使用char []:
public List asList(final char[] string) {
return new AbstractList() {
public int size() { return string.length; }
public Character get(int index) { return string[index]; }
public Character set(int index, Character newVal) {
char old = string[index];
string[index] = newVal;
return old;
}
};
}
类似于此,你可以为其他原始类型实现。
注意,使用这个通常不推荐,因为每一次访问你
会做拳击和拆箱操作。