gpt4 book ai didi

Java:将 List 转换为 Map

转载 作者:行者123 更新时间:2023-12-01 06:48:49 29 4
gpt4 key购买 nike

给定一个唯一值子列表的列表(也就是说两个不同的子列表不能共享相同值的元素) - 例如:

列表[列表[1, 1, 1],列表[2],列表[4, 4],列表[7]]

如何将其转换为具有(值,大小)键值对的 Map?

这将导致:

{
1 : 3
2 : 1
4 : 2
7 : 1
}

将我们的列表定义为,我假设可以使用流并收集为 map ,如下所示:

values.stream().collect(Collectors.toMap(Integer::intValue, ? ));

当前不确定为第二个参数输入什么内容,因为它需要值映射器,但不允许在任何子列表上调用.size() .

最佳答案

使用Collectors.toMap时,您需要指定如何从流的每个元素中获取键和值。 Integer::intValue 在这里不起作用,因为您的流元素是列表,而不是整数。

对于键,获取列表的第一个元素。 (这假设内部列表全部非空。)对于值,传递 size 方法引用。

values.stream()
.collect(Collectors.toMap(list -> list.get(0), List::size));

关于Java:将 List<List> 转换为 Map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58088052/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com