转换列表<;字符串>;映射<;字符串,列表<;字符串>&燃气轮机;使用列表值作为映射键,使用空列表映射值java 8
这可能是个愚蠢的问题。我需要用Java8将转换列表<;字符串>;映射<;字符串,列表<;字符串>&燃气轮机;使用列表值作为映射键,使用空列表映射值java 8,java,collections,java-8,Java,Collections,Java 8,这可能是个愚蠢的问题。我需要用Java8将列表转换为映射。所有列表值(“20”、“42”、“55”)都应该是创建映射的键,而创建映射的值属性应该是空列表 尽管以下代码执行此任务,但它将列表值保存为映射键和映射值的第一个索引 如何使用Java 8功能解决此问题??? List<String> list = Arrays.asList("20", "42", "55"); Map<String, List<String>> serviceMap =
列表
转换为映射
。所有列表值(“20”、“42”、“55”)
都应该是创建映射的键,而创建映射的值属性应该是空列表
尽管以下代码执行此任务,但它将列表值保存为映射键和映射值的第一个索引
如何使用Java 8功能解决此问题???
List<String> list = Arrays.asList("20", "42", "55");
Map<String, List<String>> serviceMap =
list.stream().collect(Collectors.toMap(Function.identity(), Arrays::asList));
List List=Arrays.asList(“20”、“42”、“55”);
地图服务地图=
list.stream().collect(Collectors.toMap(Function.identity(),Arrays::asList));
只需迭代列表中的每个字符串并将其添加为映射键,将新的ArrayList作为值,如下所示:
Map new ArrayList());
将数组::asList
作为值映射器传递意味着每个键的值都将是一个列表
,其中包含该键作为其单个元素,但您说过希望值应该是空的列表
如果值应为可修改的空列表
,则应创建一个新的数组列表
,作为映射的值
:
List<String> list = Arrays.asList("20", "42", "55");
Map<String, List<String>> serviceMap =
list.stream()
.collect(Collectors.toMap(Function.identity(), a -> new ArrayList<>()));
List List=Arrays.asList(“20”、“42”、“55”);
地图服务地图=
list.stream()
.collect(Collectors.toMap(Function.identity(),a->newarraylist());
@SameeraManorathna这是Java8@Eran我认为OP不知道他的意思/需要;)如果列表包含重复项,这将导致异常。@Oleksandr这是真的,因为没有人说过,它必须是可变列表,Collectors.toMap(Function.identity(),s->Collections.emptyList())
也可以……只是为了记录:您知道地图消除了列表中可能存在的重复条目吗?@SameeraManorathna这是什么意思?流是用Java8添加的?!我刚刚在一分钟前更新了我的答案;在它使用for循环之前。抱歉搞混了!