Sobes.tech
Junior — Middle

Πώς μπορούμε να εξάγουμε μόνο μοναδικά αντικείμενα από ένα ρεύμα δεδομένων στην API Stream;

sobes.tech AI

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

Στην API Stream της Java, για την εξαγωγή μοναδικών αντικειμένων από ένα ρεύμα, χρησιμοποιείται η μέθοδος distinct(). Αυτή επιστρέφει ένα νέο ρεύμα στο οποίο έχουν αφαιρεθεί οι διπλότυποι βάσει των μεθόδων equals() και hashCode() των αντικειμένων.

Παράδειγμα:

List<String> list = Arrays.asList("μήλο", "μπανάνα", "μήλο", "πορτοκάλι");
List<String> uniqueList = list.stream()
    .distinct()
    .collect(Collectors.toList());

System.out.println(uniqueList); // [μήλο, μπανάνα, πορτοκάλι]

Αν τα αντικείμενα είναι σύνθετα και χρειάζεται μοναδικότητα βάσει συγκεκριμένου πεδίου, μπορείτε να χρησιμοποιήσετε Collectors.toMap ή filter με βοηθηκές δομές, αλλά για απλές περιπτώσεις, το distinct() είναι ο πιο απλός τρόπος.