Sobes.tech
Senior

Τι είναι οι ενδιάμεσες και τερματικές μέθοδοι στα streams;

sobes.tech AI

Απάντηση από AI

Στην API Stream της Java, οι μέθοδοι διαιρούνται σε ενδιάμεσες και τερματικές.

  • Ενδιάμεσες μέθοδοι επιστρέφουν ένα νέο stream και επιτρέπουν την κατασκευή μιας αλυσίδας λειτουργιών. Είναι τεμπέλικες, δηλαδή δεν εκτελούνται άμεσα, αλλά μόνο όταν καλείται μια τερματική μέθοδος. Παραδείγματα: filter(), map(), sorted(), distinct().

  • Τερματικές μέθοδοι ξεκινούν την επεξεργασία του stream και επιστρέφουν ένα αποτέλεσμα (όχι stream). Μετά την κλήση τους, η αλυσίδα τελειώνει. Παραδείγματα: collect(), forEach(), reduce(), count().

Παράδειγμα:

List<String> names = List.of("Anna", "Bob", "Charlie", "David");

long count = names.stream()  // ενδιάμεση μέθοδος stream()
    .filter(name -> name.length() > 3)  // ενδιάμεση μέθοδος filter()
    .count();  // τερματική μέθοδος count()

System.out.println(count);  // Εκτυπώνει τον αριθμό ονομάτων με μήκος μεγαλύτερο από 3 χαρακτήρες