Ktoś wie, czy istnieje standardowy sposób tworzenia listy z instancji Iterator?Utworzenie listy <T> wystąpienie z Iterator <T>
6
A
Odpowiedz
14
I mają tendencję do Guava's Lists.newArrayList(Iterator)
ponieważ zazwyczaj mają Guava postaci uzależnienia, już istnieje.
3
Użyj Iterator
, aby uzyskać każdy element i dodać go do List
.
List<String> list = new LinkedList<String>();
while(iter.hasNext()) { // iter is of type Iterator<String>
list.add(iter.next());
}
0
spróbować czegoś tak:
public T List<T> listFromIterator(Iterator<T> iterator) {
List<T> result = new LinkedList<T>();
while(iterator.hasNext()) {
result.add(iterator.next());
}
}
Jedną rzeczą jest, aby pamiętać, że jeśli iterator nie jest na początku swojej struktury, nie ma sposobu pobierania poprzednie elementy.
Jeśli masz kolekcję, z której pochodzi iterator, możesz utworzyć listę przy użyciu konstruktora pobierającego kolekcję. ex: konstruktor LinkedList
:
LinkedList(Collection<? extends E> c)
0
ten sposób, że przekonwertować z listy do Iterator i vice versa.
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
miałem taką potrzebę, a jako użytkownik Apache Commons, to co zrobiłem:
IteratorUtils.toList(iterator);
Powiązane problemy
- 1. Jak przekształcić zestaw danych <Tuple2 <String, DeviceData >> na Iterator <DeviceData>
- 2. Porównaj wektor <T> :: iterator z wektorem <T> :: reverse_itator
- 3. Znajdź pierwsze wystąpienie ciągu znaków z wektora <string>
- 4. Wdrażanie listy z unique_ptr <>?
- 5. Niejednoznaczne wystąpienie
- 6. nie można przekonwertować z listy <Bar> do listy <Foo>
- 7. <% $, <% @, <% =, <% # ... o co chodzi?
- 8. Kopiowanie Lista <BaseClass> do listy <DerivedClass>
- 9. Convert Lista <Enum> do listy <string>
- 10. konwertować EnumerableRowCollection <string> do listy <string>
- 11. Casting IEnumerable <T> do listy <T>
- 12. Jak wyświetlić multi-select listy z listy <MyObject>
- 13. Szukasz alterantive do listy <KeyValuePair <string, KeyValuePair <string, string >>>
- 14. Uzyskiwanie wartości std :: list <> :: iterator na wskaźnik?
- 15. Nie można przekonwertować listy <KeyValuePair <...,...>> na IEnumerable <object>?
- 16. 'std :: vector <T> :: iterator it;' nie skompilować
- 17. Czy możemy przechowywać unordered_map <T> :: iterator?
- 18. błąd powracający std :: set <T> :: iterator w szablonie
- 19. Haskell/Frege <= <i = << asocjatywność
- 20. jak mogę napisać klasy rejestratora z cout styl interfejsu (logger << "Błąd:" << endl << val;)
- 21. Php co znaczy <<<?
- 22. EJS: <% = versus <% -
- 23. Integerowa promocja z operatorem <<
- 24. cout << "привет"; lub wcout << L "привет";
- 25. Redirector "<<<" w Ubuntu?
- 26. Co oznacza operator Bash <<<?
- 27. DataTable do listy <object>
- 28. listy <int> konwersji do int []
- 29. Delegowanie do listy <modeltype> MVC3
- 30. Rozszerzanie listy <T> klasa
nie można utworzyć listę z Iterator, można utworzyć listę i Iterator nad jego elementami. – Sajmon
Naprawdę nie ma sensu tworzenie "Listy" z 'Iteratora'. To jak tworzenie tablicy z tylko indeksu! – adarshr
Jeśli twój iterator miał już swoją funkcję "next()", nigdy nie będziesz w stanie odzyskać poprzednich elementów. –