Иногда можно столкнуться с необходимостью преобразовать
Iterable в Collection. Например, сторонние библиотеки часто возвращают результаты в виде Iterable, но для дальнейшей работы удобнее использовать Collection.Давайте рассмотрим два способа, как это можно сделать:
▶️Stream API (Java 8+)
С помощью Stream API это преобразование можно выполнить за пару строк:
Iterable<String> iterable = new ArrayList<>();
Collection<String> collection = StreamSupport.stream(iterable.spliterator(), false)
.collect(Collectors.toList());
Сначала создаётся поток из
Iterable, а затем результат собирается в список. ▶️Guava
Если вы используете библиотеку Guava от Google, преобразование становится ещё проще:
Iterable<String> iterable = new ArrayList<>();
Collection<String> collection = Lists.newArrayList(iterable);
Этот подход идеален, если Guava уже подключена к вашему проекту.
Оба способа быстро решают задачу и помогают избежать лишнего кода.
❤️ — если было полезно
➡️ Java Developer | #обучение
