Collectors.toMap使用两个属性组合座位key,value值输出原对象
时间: 2024-02-05 11:44:30 浏览: 132
对Map按key和value分别排序
Collectors.toMap方法可以将一个流中的元素按照指定的属性转换为Map,并且可以指定key和value的类型。如果我们需要将两个属性组合作为Map的key,可以使用lambda表达式来实现:
```
List<Person> persons = Arrays.asList(
new Person("Tom", 20),
new Person("Jerry", 25),
new Person("Alice", 30),
new Person("Bob", 35)
);
Map<String, Person> map = persons.stream()
.collect(Collectors.toMap(
p -> p.getName() + "-" + p.getAge(),
p -> p
));
System.out.println(map);
```
输出结果为:
```
{Tom-20=Person{name='Tom', age=20}, Jerry-25=Person{name='Jerry', age=25}, Alice-30=Person{name='Alice', age=30}, Bob-35=Person{name='Bob', age=35}}
```
这里我们将每个Person对象的名称和年龄组合作为Map的key,将原对象作为Map的value。
阅读全文