Sobes.tech
Junior

Με ποια λειτουργική διεπαφή εργαζόμαστε στη μέθοδο map()?

sobes.tech AI

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

Στη μέθοδο map() των ροών Java, εργαζόμαστε με το λειτουργικό interface java.util.function.Function.

// Παράδειγμα χρήσης του Function στη μέθοδο map()
import java.util.List;
import java.util.stream.Collectors;

List<String> words = List.of("hello", "world");

// Function<String, Integer> μετατρέπει ένα String σε Integer
List<Integer> lengths = words.stream()
                             .map(s -> s.length()) // Η έκφραση lambda υλοποιεί το Function<String, Integer>
                             .collect(Collectors.toList());

// Άλλος τρόπος με αναφορά σε μέθοδο
List<Integer> lengthsMethodRef = words.stream()
                                      .map(String::length) // Η αναφορά σε μέθοδο υλοποιεί επίσης το Function<String, Integer>
                                      .collect(Collectors.toList());

Το interface Function<T, R> δέχεται ένα όρισμα τύπου T και επιστρέφει ένα αποτέλεσμα τύπου R. Στο πλαίσιο του map(), το T είναι ο τύπος των στοιχείων του εισερχόμενου ρεύματος, και το R είναι ο τύπος των στοιχείων του εξερχόμενου ρεύματος.