Java 8 – map & flatMap


Java 8 – map & flatMap

Metoda map to metoda która pozwala na przemapowanie każdego elementu kolekcji na inny element. Załóżmy, że mamy kolekcję liczb całkowitych i chcemy otrzymać nową kolekcję gdzie każdy element zostanie zmapowany na wartość logiczną w zależności od tego czy liczba jest parzysta czy nie:

List<Integer> integerList = Arrays.asList(1,2,3,4,5,6,7,8,9,10);
 
List<Boolean> integerListAfterMap = integerList.stream().map(
                x -> x % 2 == 0
 ).collect(Collectors.toList());
 
System.out.println(integerListAfterMap);

Wynik:

[false, true, false, true, false, true, false, true, false, true]

Z użyciem interfejsu Function:

Function<Integer, Boolean> evenNumber = x -> x % 2 == 0;
List<Boolean> integerListAfterMapUsingPredicate = integerList.stream().map(evenNumber
).collect(Collectors.toList());

Przykład z flatMap – tworzymy strukturę – listę list:

List<Integer> list1 = Arrays.asList(1,2,3);
List<Integer> list2 = Arrays.asList(4,5,6);
List<Integer> list3 = Arrays.asList(7,8,9);
 
List<List<Integer>> listOfLists = Arrays.asList(list1, list2, list3);

następnie chcemy spłaszczyć powyższą strukturę do postaci wektora:

List<Integer> listOfAllIntegers = listOfLists.stream()
                .flatMap(x -> x.stream())
                .collect(Collectors.toList());
 
System.out.println(listOfAllIntegers);

Wynik:

[1, 2, 3, 4, 5, 6, 7, 8, 9]


2 Comments

  1. Cześć dzięki za post !

  2. marcin warycha - javaleader.pl 19 lipca 2019 at 08:58

    Cześć Magda, dziękuję za komentarz! 🙂

Leave a comment

Your email address will not be published.


*