Dado un iterador, la tarea es convertirlo en List en Java.
Ejemplos:
Input: Iterator = {1, 2, 3, 4, 5} Output: {1, 2, 3, 4, 5} Input: Iterator = {'G', 'e', 'e', 'k', 's'} Output: {'G', 'e', 'e', 'k', 's'}
A continuación se muestran las diversas formas de hacerlo:
- Enfoque ingenuo :
- Obtenga el iterador.
- Crea una lista vacía.
- Agregue cada elemento del iterador a la lista usando el método forEachRemaining().
- Devuelve la lista.
A continuación se muestra la implementación del enfoque anterior:
// Java program to get a List
// from a given Iterator
import
java.util.*;
class
GFG {
// Function to get the List
public
static
<T> List<T>
getListFromIterator(Iterator<T> iterator)
{
// Create an empty list
List<T> list =
new
ArrayList<>();
// Add each element of iterator to the List
iterator.forEachRemaining(list::add);
// Return the List
return
list;
}
// Driver code
public
static
void
main(String[] args)
{
// Get the Iterator
Iterator<Integer>
iterator = Arrays.asList(
1
,
2
,
3
,
4
,
5
)
.iterator();
// Get the List from the Iterator
List<Integer>
list = getListFromIterator(iterator);
// Print the list
System.out.println(list);
}
}
Producción:[1, 2, 3, 4, 5]
- Usando Iterable como intermedio :
- Obtenga el iterador.
- Convierta el iterador en iterable usando la expresión lambda.
- Convierta el iterable en una lista usando Stream.
- Devuelve la lista.
A continuación se muestra la implementación del enfoque anterior:
// Java program to get a List
// from a given Iterator
import
java.util.*;
import
java.util.stream.Collectors;
import
java.util.stream.StreamSupport;
class
GFG {
// Function to get the List
public
static
<T> List<T>
getListFromIterator(Iterator<T> iterator)
{
// Convert iterator to iterable
Iterable<T> iterable =() -> iterator;
// Create a List from the Iterable
List<T> list = StreamSupport
.stream(iterable.spliterator(),
false
)
.collect(Collectors.toList());
// Return the List
return
list;
}
// Driver code
public
static
void
main(String[] args)
{
// Get the Iterator
Iterator<Integer>
iterator = Arrays.asList(
1
,
2
,
3
,
4
,
5
)
.iterator();
// Get the List from the Iterator
List<Integer>
list = getListFromIterator(iterator);
// Print the list
System.out.println(list);
}
}
Producción:[1, 2, 3, 4, 5]
Publicación traducida automáticamente
Artículo escrito por RishabhPrabhu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA