Junior
Java-da Stream API-nin əsas ideyası nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Stream API-nin əsas ideyası məlumatların kolleksiyalarını emal etmək üçün deklarativ bir üsul təqdim etməkdir. İmpərativ təkrarlama yanaşması yerinə, axınlar (streams) məlumatlar üzərində nə edilməli olduğunu (filtrləmə, çevirmə, toplama) təsvir etməyə imkan verir və necə ediləcəyini API-də saxlayır.
Əsas anlayışlar:
- Dəyişməzlik: Axınlar orijinal məlumat mənbəyini dəyişmir. Axın əməliyyatları yeni axınlar və ya nəticələr yaradır.
- Lazily qiymətləndirmə: Bir çox axın əməliyyatı, məsələn,
filter()vəmap(), ara əməliyyatlardır. Onlar,collect()və yaforEach()kimi terminal əməliyyat çağırılana qədər icra edilmir. Bu, icraatı optimallaşdırmağa imkan verir. - Xətt (Pipeline): Axın əməliyyatları bir xəttdə birləşdirilə bilər. Hər element ardıcıl və ya paralel olaraq xətdən keçir.
- Paralel emal: Axınlar məlumatların asanlıqla paralel emalına imkan verir, çox vaxt minimal kod dəyişikliyi ilə (
parallelStream()).
Üstünlüklər:
- Kolleksiyalar üzərində mürəkkəb əməliyyatlar üçün daha oxunaqlı və ifadəli kod.
- Paralelləşdirmə asanlığı.
- Dövr əməliyyatları ilə əlaqəli boilerplate kodun aradan qaldırılması.
// Nümunə: String siyahısının filtrlənməsi və çevrilməsi
List<String> adlar = Arrays.asList("Alice", "Bob", "Charlie", "David");
List<Integer> uzunluqlar = adlar.stream()
.filter(ad -> ad.startsWith("A")) // Ara əməliyyat
.map(String::length) // Ara əməliyyat
.collect(Collectors.toList()); // Terminal əməliyyat
// uzunluqlar [5] olacaq