Tendrá que sea utilice un bucle o cree un contenedor de colecciones como Arrays.asList
que funcione en arreglos de caracteres primitivos (o directamente en cadenas).
List<Character> list = new ArrayList<Character>();
Set<Character> unique = new HashSet<Character>();
for(char c : "abc".toCharArray()) {
list.add(c);
unique.add(c);
}
Aquí es un Arrays.asList
como envoltura para cadenas:
public List<Character> asList(final String string) {
return new AbstractList<Character>() {
public int size() { return string.length(); }
public Character get(int index) { return string.charAt(index); }
};
}
Ésta es una lista inmutable, sin embargo. Si desea una lista mutable, utilizar esto con un char[]
:
public List<Character> asList(final char[] string) {
return new AbstractList<Character>() {
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;
}
};
}
Análogo a esto se puede aplicar esto para los otros tipos primitivos. Tenga en cuenta que esto normalmente no se recomienda, ya que por cada acceso que haría una operación de boxeo y unboxing.
El Guava library contiene similar List wrapper methods for several primitive array classes, como Chars.asList, y una envoltura para cuerdas en Lists.charactersOf(String).
Parece que he reinventado la rueda aquí ... Supongo que 'Chars.asList' hace acerca de lo que hace el método' asList' en mi respuesta. –
También en Guava es 'Lists.charactersOf (" abc ")' que es un poco más corto y no nos hace llamar 'toCharArray()' –