Junior — Middle
შეგიძლიათ ახსნათ, რა არის flatMap მეთოდი და როგორ განსხვავდება map-დან?
sobes.tech AI
პასუხი AI-სგან
მეთოდი map გამოიყენება კოლექციაზე და გარდაქმნის თითოეულ ელემენტს, აბრუნებს ახალ კოლექციას, რომელიც შეესაბამება ფუნქციის შედეგებს.
flatMap პირველ რიგში იყენებს ფუნქციას, რომელიც აბრუნებს კოლექციას (ან ნაკადს) თითოეულ ელემენტზე, და შემდეგ "გადახდის" (flatten) ყველა ამ კოლექციას ერთ საერთო ნაკადში ან სიაში.
Java-ს მაგალითი ნაკადებით:
List<List<String>> list = Arrays.asList(
Arrays.asList("a", "b"),
Arrays.asList("c", "d")
);
// map დააბრუნებს Stream<List<String>>
Stream<List<String>> mapped = list.stream()
.map(innerList -> innerList.stream().map(String::toUpperCase).collect(Collectors.toList()));
// flatMap დააბრუნებს Stream<String>
Stream<String> flatMapped = list.stream()
.flatMap(innerList -> innerList.stream().map(String::toUpperCase));
// flatMapped-ი შეგვიძლია დავაგროვოთ სიაში
List<String> result = flatMapped.collect(Collectors.toList()); // ["A", "B", "C", "D"]
ამიტომ, flatMap სასარგებლოა, როდესაც ფუნქცია აბრუნებს შიგნიდან კოლექციებს და გსურთ მიიღოთ გლუვი სტრუქტურა.