varios usar tokens son separar por los ejercicios ejemplo delimitadores cuales con como comas array java list collections set jdk1.6

usar - split con varios delimitadores java



La forma más concisa de convertir un conjunto<String> en una lista<String> (6)

No estoy realmente seguro de lo que estás haciendo exactamente a través del contexto de tu código, pero ...

¿Por qué hacer la variable listOfTopicAuthors en absoluto?

List<String> list = Arrays.asList((....).toArray( new String[0] ) );

el "...." representa, sin embargo, tu set entró en juego, ya sea nuevo o provenga de otra ubicación.

Actualmente estoy haciendo esto:

Set<String> setOfTopicAuthors = .... List<String> list = Arrays.asList( setOfTopicAuthors.toArray( new String[0] ) );

¿Puedes vencer esto?


Prueba esto para Set :

Set<String> listOfTopicAuthors = ..... List<String> setList = new ArrayList<String>(listOfTopicAuthors);

Prueba esto para el Map :

Map<String, String> listOfTopicAuthors = ..... // List of values: List<String> mapValueList = new ArrayList<String>(listOfTopicAuthors.values()); // List of keys: List<String> mapKeyList = new ArrayList<String>(listOfTopicAuthors.KeySet());


Si está utilizando Guava, importa estáticamente el método newArrayList de la clase Lists :

List<String> l = newArrayList(setOfAuthors);


Teniendo en cuenta que tenemos Set<String> stringSet , podemos usar lo siguiente:

Java 10 (lista no modificable)

List<String> strList = stringSet.stream().collect(Collectors.toUnmodifiableList());

Java 8 (Listas modificables)

import static java.util.stream.Collectors.*; List<String> stringList1 = stringSet.stream().collect(toList());

Según el doc para el método toList()

No hay garantías sobre el tipo, la mutabilidad, la serialización o la seguridad de subprocesos de la Lista devuelta; Si se requiere más control sobre la Lista devuelta, use toCollection (Proveedor).

Entonces, si necesitamos una implementación específica, por ejemplo, ArrayList , podemos obtenerla de esta manera:

List<String> stringList2 = stringSet.stream(). collect(toCollection(ArrayList::new));

Java 8 (Listas no modificables)

Podemos utilizar el método Collections::unmodifiableList y envolver la lista devuelta en ejemplos anteriores. También podemos escribir nuestro propio método personalizado como:

class ImmutableCollector { public static <T> Collector<T, List<T>, List<T>> toImmutableList(Supplier<List<T>> supplier) { return Collector.of( supplier, List::add, (left, right) -> { left.addAll(right); return left; }, Collections::unmodifiableList); } }

Y luego usarlo como:

List<String> stringList3 = stringSet.stream() .collect(ImmutableCollector.toImmutableList(ArrayList::new));

Otra posibilidad es utilizar el método de collectingAndThen que permite realizar una transformación final antes de devolver el resultado:

List<String> stringList4 = stringSet.stream().collect(collectingAndThen( toCollection(ArrayList::new),Collections::unmodifiableList));

Un punto a tener en cuenta es que el método Collections::unmodifiableList devuelve una vista no modificable de la lista especificada, según doc . Una colección de vista no modificable es una colección que no se puede modificar y también es una vista de una colección de respaldo. Tenga en cuenta que los cambios en la colección de respaldo podrían seguir siendo posibles, y si se producen, son visibles a través de la vista no modificable. Pero el método de Collectors.unmodifiableList devuelve una lista verdaderamente inmutable en Java 10 .


List<String> l = new ArrayList<String>(listOfTopicAuthors);


List<String> list = new ArrayList<String>(listOfTopicAuthors);