In this tutorial we will check java solutions of conversion Iterable to Collection.
Java solutions
1. for loop
Simple solution that iterates over the elements and adds them into the collection one by one:
List<T> list = new ArrayList<T>();
for (T element: iterable) {
list.add(element);
}
2. while loop
In this case we use directly the iterator’s methods (hasNext
and get
) to control iteration over the elements:
List<T> list = new ArrayList<T>();
while (iterator.hasNext()) {
list.add(iterator.next());
}
3. foreach
The Java 8 foreach
method:
List<T> list = new ArrayList<>();
iterable.forEach(list::add);
4. streams
Example with the use of the Java 8 streams:
StreamSupport.stream(iterable.spliterator(), false)
.collect(Collectors.toList());
Third party libraries
5. Guava
Using the Guava library there are many possibilities:
List<T> list = Lists.newArrayList(iterable);
List<T> list = ImmutableList.copyOf(iterable);
List<T> list = Lists.newArrayList(iterable);
6. Apache Commons
Another utility library that provides many utility methods:
List<T> list = IterableUtils.toList(iterable);
List<T> list = IterableUtils.toList(iterator);
Summary
As we see, there many possibiliteies to convert Iterable (or Iterator) into the Collection. The choice depends on us whether we choose the utility library like Guava or plain Java solution.