Junior — Middle
91
Worin unterscheiden sich die Schnittstellen Stream und Collection in Java, und in welchen Szenarien ist ihre Anwendung gerechtfertigt?
Unternehmen wurden gefragt
DCloud
Antwort von AI
sobes.tech KI
Интерфейс Collection в Java представляет собой структуру данных — контейнер, который хранит элементы. Он определяет методы для добавления, удаления, поиска элементов и т.д. Примеры реализаций: ArrayList, HashSet, LinkedList. Collection — это именно хранилище данных.
Интерфейс Stream — это абстракция для последовательной обработки данных, которая позволяет выполнять операции фильтрации, преобразования, агрегации и т.д. Потоки не хранят данные, а работают с ними «на лету», поддерживают ленивые вычисления и могут быть последовательными или параллельными.
Когда использовать:
- Если нужно просто хранить и управлять набором элементов — используйте Collection.
- Если нужно выполнить цепочку операций над данными (фильтрация, сортировка, маппинг) — используйте Stream.
Пример:
List<String> names = Arrays.asList("Anna", "Bob", "Charlie");
// Collection хранит данные
// Stream для обработки данных
List<String> filtered = names.stream()
.filter(name -> name.startsWith("A"))
.collect(Collectors.toList());