Превращение изображения в блоб в React Native (Expo) и загрузка в корзину S3

Метод groupingBy имеет первый параметр Function<T,K> где:

@param <T> тип входных элементов

@param <K> ] тип ключей

Если мы заменим лямбда на анонимный класс в вашем коде, мы увидим что-то вроде этого:

people.stream().collect(Collectors.groupingBy(new Function<Person, int>() {
            @Override
            public int apply(Person person) {
                return person.getAge();
            }
        }));

Теперь измените выходной параметр <K>. В этом случае, например, я использовал парный класс из org.apache.commons.lang3.tuple для группировки по имени и возрасту, но вы можете создать свой собственный класс для фильтрации групп по мере необходимости.

people.stream().collect(Collectors.groupingBy(new Function<Person, Pair<Integer, String>>() {
                @Override
                public YourFilter apply(Person person) {
                    return Pair.of(person.getAge(), person.getName());
                }
            }));

Наконец, после замены с помощью лямбда-кода код выглядит следующим образом:

Map<Pair<Integer,String>, List<Person>> peopleByAgeAndName = people.collect(Collectors.groupingBy(p -> Pair.of(person.getAge(), person.getName()), Collectors.mapping((Person p) -> p, toList())));
0
задан Akhil Raj 3 March 2019 в 22:10
поделиться