¿Alguien sabe si existe una forma estándar de crear una lista a partir de una instancia de iterador?Crear lista <T> instancia de Iterator <T>
6
A
Respuesta
14
que tienden hacia Guava's Lists.newArrayList(Iterator)
porque por lo general tienen la guayaba como una dependencia, y que ya existe.
3
Usa Iterator
para obtener cada elemento y agrégalo a List
.
List<String> list = new LinkedList<String>();
while(iter.hasNext()) { // iter is of type Iterator<String>
list.add(iter.next());
}
0
intentar algo así como lo siguiente:
public T List<T> listFromIterator(Iterator<T> iterator) {
List<T> result = new LinkedList<T>();
while(iterator.hasNext()) {
result.add(iterator.next());
}
}
Una cosa a tener en cuenta es que si el iterador no se encuentra al comienzo de su estructura, que no hay manera de recuperar los elementos anteriores.
Si tiene la colección de la que proviene el iterador, puede crear una lista utilizando un constructor que tome una colección. por ejemplo: la LinkedList
constructor:
LinkedList(Collection<? extends E> c)
0
Ésta es la forma en que me convierto de la Lista de iterador y viceversa.
ArrayList arrayList = new ArrayList();
// add elements to the array list
arrayList.add("C");
arrayList.add("A");
arrayList.add("E");
arrayList.add("B");
arrayList.add("D");
arrayList.add("F");
// use iterator to display contents of arrayList
System.out.print("Original contents of arrayList: ");
Iterator iterator = arrayList.iterator();
ArrayList arrayList2 = new ArrayList();
while(iterator.hasNext()) {
Object element = iterator.next();
arrayList2.add(element);
System.out.print(element + " ");
}
5
tuve esta necesidad, y como usuario de Apache Commons, esto es lo que hice:
IteratorUtils.toList(iterator);
Cuestiones relacionadas
- 1. Tratar Enumeración <T> como Iterator <T>
- 2. Lista <Object> vs Lista <dynamic>
- 3. Cómo crear la instancia de la lista <T> en el archivo C# utilizando Reflection
- 4. Cómo crear una propiedad para una lista <T>
- 5. Lista <?> o Lista <Object>
- 6. Lista <Object> y lista <?>
- 7. 'std :: vector <T> :: iterator it;' no compila
- 8. Java: cómo obtener Iterator <Character> desde String
- 9. Convertir la lista <MyObject> al Diccionario <obj.string, Lista <obj.ID>>
- 10. Lista <? extiende MyType>
- 11. Cómo lanzar ArrayList <> de la lista <>
- 12. ¿Cómo puedo crear un tipo dinámico? Lista <T>
- 13. Cómo crear JSONArray para una Lista <Class name>
- 14. Conversión de la lista <Integer> a la lista <String>
- 15. lista de lo que cada uno de los medios <% (<% #, <% =, etc ...)
- 16. Cómo deserializar Enumerable.ToList <>() a la lista <>
- 17. Convertir <Enum> a la lista <string>
- 18. Lista @OneToMany <> vs Set <> diferencia
- 19. Lista <Map <String, Object >> to org.json.JSONObject?
- 20. IList <int> vs Lista <int>
- 21. Lista <? extiende Base> VS List <Base>
- 22. Comparar Lista <String[]>
- 23. Hibernate, Lista <String>
- 24. <% $, <% @, <% =, <% # ... ¿cuál es el problema?
- 25. ¿Cómo puedo convertir una lista <interface> en la lista <concrete>?
- 26. Genéricos de Java: Lista <Container<?>> = new LinkedList <Container <Double>>() está prohibido?
- 27. Lista <object> En la lista <T> usando la reflexión
- 28. Lista dinámica <T> tipo
- 29. lista <int> convertir a int []
- 30. ¿Cómo crear una instancia de la lista <T> pero T es desconocido hasta el tiempo de ejecución?
no se puede crear una lista de iterador, puede crear lista e iterador sobre sus elementos. – Sajmon
Realmente no tiene sentido crear una 'Lista' de un' Iterador'. ¡Es como crear una matriz a partir de solo un índice! – adarshr
Si su iterador ya ha llamado a su función 'next()', nunca podrá recuperar los elementos anteriores. –