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() είναι ο πιο απλός τρόπος.