Карта для DTO с потоковой загрузкой - PullRequest
3 голосов
/ 25 июня 2019

У меня есть вопрос о карте dto для ключа и значения с потоком в Spring Boot.Я хочу создать что-то вроде в примере.Можете ли вы объяснить, как я могу сделать это без использования Kryo Framework и скопировать экземпляр сериализации?

Например, Person is Set collection.

Person
.stream()
.collect(
toMap(PersonSet::Id, and value something like 'this' ));

Ответы [ 3 ]

3 голосов
/ 25 июня 2019

Если ваш Dto выглядит так:

public class Person {
    private Long id;
    //.. getter and setters
}

Тогда вы можете использовать toMap вот так:

Set<Person> set = ...;
Map<Long, Person> result = set.stream()
        .collect(Collectors.toMap(Person::getId, Function.identity()));
2 голосов
/ 25 июня 2019

Я полагаю, это то, что вы ищете:

final Set<Person> personSet = //create a set of persons;
final Map<Integer, Person> personMap = personSet.stream().collect(Collectors.toMap(Person::id, person -> person).
1 голос
/ 25 июня 2019

Предполагая, что Person::id является целым числом - для создания Map<Integer, Person> из Set<Person> вы можете использовать что-то вроде:

Set<Person> people = ...

Map<Integer, Person> collect = people.stream()
          .collect(Collectors.toMap(Person::getId, Function.identity()));

, используя Collectors :: toMap collector и Функция :: идентичность

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...