Sobes.tech
Middle

Ποιες λειτουργίες υπάρχουν στα streams και ποιοι τύποι λειτουργιών υπάρχουν;

sobes.tech AI

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

Στην Java 8+, τα streams παρέχουν ένα σύνολο λειτουργιών για την επεξεργασία συλλογών δεδομένων.

Τύποι λειτουργιών:

  1. Μεταβατικές (Intermediate): Επιστρέφουν ένα νέο stream. Μπορούν να εκτελεστούν με διστακτικό τρόπο. Επιτρέπουν τη σύνδεση λειτουργιών. Περιλαμβάνουν:

    • filter()
    • map()
    • flatMap()
    • distinct()
    • sorted()
    • peek()
    • limit()
    • skip()
  2. Τερματικές (Terminal): Ολοκληρώνουν το stream, εκτελούν την επεξεργασία και επιστρέφουν ένα αποτέλεσμα ή προκαλούν ένα παρενέργεια. Μετά την εκτέλεση μιας τερματικής λειτουργίας, το stream δεν μπορεί να χρησιμοποιηθεί ξανά. Περιλαμβάνουν:

    • forEach()
    • forEachOrdered()
    • toArray()
    • reduce()
    • collect()
    • count()
    • sum()
    • average()
    • min()
    • max()
    • anyMatch()
    • allMatch()
    • noneMatch()
    • findFirst()
    • findAny()

Παράδειγμα αλυσίδας λειτουργιών:

// Μεταβατικές λειτουργίες (filter, map)
// Τερματική λειτουργία (collect)
List<String> filteredList = originalList.stream()
    .filter(s -> s.startsWith("A")) // Φιλτράρισμα στοιχείων που ξεκινούν με "A"
    .map(String::toUpperCase) // Μετατροπή σε κεφαλαία
    .collect(Collectors.toList()); // Συλλογή αποτελεσμάτων σε λίστα