Sobes.tech
Назад к вопросам
Senior
5

В чем разница между коллекцией (Collection) и стримом (Stream)?

Компании, где спрашивали
aiins

Ответ от нейросети

sobes.tech AI

Коллекция (Collection) — это структура данных, которая хранит элементы в памяти и предоставляет методы для добавления, удаления и перебора этих элементов. Коллекция — это конкретное хранилище данных.

Стрим (Stream) — это абстракция для последовательной обработки данных, которая не хранит элементы, а позволяет выполнять операции над ними (фильтрация, отображение, агрегация) в функциональном стиле. Стримы ленивы и могут быть одноразовыми.

Ключевые отличия:

  • Коллекция хранит данные, стрим — нет.
  • Коллекция можно перебирать многократно, стрим — одноразовый.
  • Стрим поддерживает цепочку операций и ленивое вычисление.

Пример:

List<String> list = Arrays.asList("a", "b", "c");
// Коллекция хранит данные
for (String s : list) {
    System.out.println(s);
}

// Стрим позволяет обработать данные функционально
list.stream()
    .filter(s -> !s.equals("b"))
    .forEach(System.out::println);