gpt4 book ai didi

java - Lambda 表达式创建以整数为键、以列表为值的映射

转载 作者:行者123 更新时间:2023-12-03 01:24:28 24 4
gpt4 key购买 nike

问题:通过 lambda 表达式解决以下问题。给定一个字符串列表,创建一个 map ,其中

Key=Integer(string.length)
value=List

如果两个字符串的长度匹配,则创建所有匹配长度的字符串的列表。

我不知道如何为流中所有匹配的字符串长度创建列表!我尝试了以下方法,这给了我重复 key 的异常(exception),这是显而易见的。

private static void changeToMap(List<String> listString)
{
Map<Integer, String> map=listString.stream().collect(Collectors.toMap(x->x.toString().length(),x->x));
System.out.println(map);
}

最佳答案

这正是 groupingBy 的内容收集器的设计目的是:

Map<Integer, List<String>> map = 
listString.stream().collect(Collectors.groupingBy(String::length));

请注意,顺便说一句,您的代码将 map 定义为 Map<Integer, String> ,而根据问题的描述,应该定义为Map<Integer, List<String>> ,正如上面的代码片段所定义的那样。

关于java - Lambda 表达式创建以整数为键、以列表为值的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37959794/

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