Sobes.tech
Middle

Java-da Collection və Stream arasındakı fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Collection — elementləri saxlamaq üçün məlumatlar strukturu olub, obyektlər qrupunu, məsələn, siyahılar, toplamlardır. Bu, elementlərin idarə olunmasına yönəlmiş məlumat anbarıdır.

Stream — mənbədən (məsələn, kolleksiyadan) gələn elementlərin ardıcıllığıdır və bu elementlərin emalı və təhlili üçün funksional üslubda əməliyyatları dəstəkləyir. Məlumat saxlamır, sadəcə əməliyyatlar üçün axını təmsil edir.

Əsas fərqlər:

  • Məqsəd: Collection - məlumatların saxlanması, Stream - məlumatların emalı.
  • Vəziyyət dəyişməsi: Collection üzərində əməliyyatlar adətən onun vəziyyətini dəyişir. Stream əməliyyatları dəyişmir orijinal məlumat mənbəyini.
  • Təkrar istifadə: Collection çox dəfə istifadə oluna bilər. Stream adətən bir dəfə istifadə olunur və terminal əməliyyat həyata keçirildikdən sonra bitir.
  • Lazımi qiymətləndirmə: Stream üzərində əməliyyatlar "lazımi" şəkildə (yalnız terminal əməliyyat çağırıldıqda) yerinə yetirilir, bu böyük məlumat dəstləri üçün səmərəli ola bilər. Collection əməliyyatları dərhal yerinə yetirilir.
  • Paralellik: Stream parallelStream() metodu ilə səmərəli paralel işləmə dəstəkləyir.

Nümunə:

// Collection: təkrarlana bilən məlumatların saxlanması
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
names.add("Charlie");

// Stream: kolleksiyadan məlumatların emalı
long count = names.stream() // kolleksiyadan axın yaradılması
                  .filter(name -> name.startsWith("A")) // aralıq əməliyyat
                  .count(); // terminal əməliyyat