java中Collectors.toMap中的key::、value::如何进行再次封装
时间: 2024-03-25 08:40:21 浏览: 52
HashMap的二次封装
`key::` 和 `value::` 是 Java 8 中的方法引用,用于将 lambda 表达式中的参数作为方法的参数传递。如果需要对其进行再次封装,可以使用 lambda 表达式或方法引用的方式。
例如,我们可以使用 lambda 表达式对 `key::` 进行再次封装:
```java
Map<String, Integer> map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
// 使用 lambda 表达式对 key 进行再次封装
Map<String, Integer> result = map.entrySet().stream()
.collect(Collectors.toMap(entry -> "prefix_" + entry.getKey(), Map.Entry::getValue));
System.out.println(result); // 输出:{prefix_a=1, prefix_b=2, prefix_c=3}
```
同样地,我们也可以使用方法引用对 `value::` 进行再次封装:
```java
Map<String, Integer> map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
// 使用方法引用对 value 进行再次封装
Map<String, String> result = map.entrySet().stream()
.collect(Collectors.toMap(Map.Entry::getKey, entry -> "prefix_" + entry.getValue()));
System.out.println(result); // 输出:{a=prefix_1, b=prefix_2, c=prefix_3}
```
阅读全文