Новая функция Java8 - Stream преобразует список в карту

Данные: в классе User есть три атрибута: id, name и age. Коллекция List — это userList, в котором хранятся объекты User.

1. Укажите ключ-значение, где значение — это значение атрибута в объекте.

Map<Integer,String> userMap1 = userList.stream().collect(Collectors.toMap(User::getId,User::getName));

2. Укажите ключ-значение, значение — это сам объект, Пользователь->Пользователь — это лямбда-выражение, которое возвращает себя

Map<Integer,User> userMap2 = userList.stream().collect(Collectors.toMap(User::getId,User->User));

3. Укажите ключ-значение, значение — это сам объект, Function.identity() — это краткий способ написания, а также возвращает сам объект

 Map<Integer,User> userMap3 = userList.stream().collect(Collectors.toMap(User::getId, Function.identity()));

4. Укажите ключ-значение, значением является сам объект, Function.identity() является кратким способом написания, а также возвращает сам объект, решение конфликтов клавиш, здесь выберите второй ключ, чтобы перезаписать первый ключ.

 Map<Integer,User> userMap4 = userList.stream().collect(Collectors.toMap(User::getId, Function.identity(),(key1,key2)->key2));

Guess you like

Origin blog.csdn.net/qq_37131111/article/details/120176499