Ora*_*cle 0 java dictionary java-stream
给定一个唯一值子列表的列表(也就是说,两个不同的子列表不能共享相同值的元素)-例如:
List[List[1, 1, 1], List[2], List[4, 4], List[7]]
如何将其转换为具有(值,大小)键值对的Map?
这将导致:
{
1 : 3
2 : 1
4 : 2
7 : 1
}
Run Code Online (Sandbox Code Playgroud)
将List定义为values,我假设人们可以使用流并这样收集Map:
values.stream().collect(Collectors.toMap(Integer::intValue, ? ));
当前不确定要为第二个参数输入什么,因为它需要a,value mapper但不允许.size()在任何子列表上调用。
使用时Collectors.toMap,您需要指定如何从流的每个元素中获取键和值。 Integer::intValue在这里无法使用,因为您的流元素是列表,而不是整数。
对于键,获取列表的第一个元素。(这假定内部列表都是非空的。)对于该值,请传递size方法引用。
values.stream()
.collect(Collectors.toMap(list -> list.get(0), List::size));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
77 次 |
| 最近记录: |