java lambda list转换map时,把多个参数拼接作为key操作
时间: 2023-05-03 20:05:52 浏览: 1554
Java 8 引入的 lambda 表达式和 Stream API 大大简化了我们对集合的操作。其中,Stream 的 map() 函数可以将一个集合转换为另一个集合,非常方便。而在将一个 List 转换为 Map 时,我们有时需要将多个参数拼接成一个字符串作为键(Key)。这种情况下,我们可以使用 lambda 表达式提供的功能将多个参数拼接起来。
具体来说,我们可以使用 Stream API 的 collect() 函数,并传入一个 Collector 对象。而当我们想要将多个参数拼接作为 Key 的时候,我们可以使用 Collectors 的 toMap() 方法,并重载该方法传入一个 Function 对象来实现。这个 Function 对象可以接受多个参数,并将它们拼接起来作为 Key。
比如,我们有一个装有 Person 类型的 List,每个 Person 包含了 name 和 age 两个属性,我们想要根据 name 和 age 生成一个 Map,其中 Key 为 name + "#" + age,Value 为 Person 实例。我们可以这样做:
```
List<Person> personList = ... ;
Map<String, Person> personMap = personList.stream()
.collect(Collectors.toMap(
person -> person.getName() + "#" + person.getAge(),
person -> person));
```
这样,我们就得到了一个由 name+“#”+age 组成的 String 作为 Key,对应的 Value 是 Person 实例。通过这样的方式,我们可以很方便地将多个参数组合成一个字符串作为 Map 的 Key,并根据此生成 Map。
阅读全文