Sobes.tech
Junior

Con quale interfaccia funzionale lavoriamo nel metodo map()?

sobes.tech AI

Risposta dell'AI

Nel metodo map() degli stream di Java, lavoriamo con l'interfaccia funzionale java.util.function.Function.

// Esempio di utilizzo di Function nel metodo map()
import java.util.List;
import java.util.stream.Collectors;

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

// Function<String, Integer> converte una String in un Integer
List<Integer> lengths = words.stream()
                             .map(s -> s.length()) // L'espressione lambda implementa Function<String, Integer>
                             .collect(Collectors.toList());

// Altro metodo con riferimento a metodo
List<Integer> lengthsMethodRef = words.stream()
                                      .map(String::length) // Il riferimento a metodo implementa anche Function<String, Integer>
                                      .collect(Collectors.toList());

L'interfaccia Function<T, R> accetta un argomento di tipo T e restituisce un risultato di tipo R. Nel contesto di map(), T è il tipo degli elementi dello stream di input, e R è il tipo degli elementi dello stream di output.