我有一张这样的单子
List<String> customList = Arrays.asList(
"5000 Buruli ulcer is an infectious disease",
"6000 characterized by the development",
"7000 of painless open wounds.",
"8000 The disease largely occurs in",
"10000 sub-Saharan Africa and Australia."
);
"5000", ["Buruli", "ulcer", "is", "an", "infectious", "disease"]
"6000", ["characterized", "by", "the", "development"]
// etc
TreeMap<String, List<String[]>> collect = customList.stream()
.map(s -> s.split(" ", 2))
.collect(Collectors
.groupingBy(a -> a[0], TreeMap::new, Collectors.mapping(a -> a[1].split(" "), Collectors.toList())));
您希望使用LinkedHashMap
来保留原始顺序。因此您的代码应该如下所示:
Map<String, List<String>> collect = customList.stream()
.map(s -> s.split(" +"))
.collect(Collectors.toMap(a -> a[0], a -> Arrays.asList(a)
.subList(1, a.length), (a, b) -> a, LinkedHashMap::new));
如果您的键不是唯一的,您可以使用分组收集器如下所示(collectors.flatmapping
requires Java 9+):
collect = customList.stream()
.map(s -> Arrays.asList(s.split(" +")))
.collect(Collectors.groupingBy(l -> l.get(0),
LinkedHashMap::new,
Collectors.flatMapping(l -> l.stream().skip(1), Collectors.toList())));
主要内容:之前的旧方法,Java11 的 新方法,Java11 集合转换为数组 的示例Java 11 引入了一种将集合转换为数组的简单方法。 之前的旧方法 Java11 的 新方法 Java11 集合转换为数组 的示例 ApiTester.java 输出结果为
我有我想分批处理的编号列表。
我想将列表转换为映射,如下所示。下面是一个例子。 我有学生列表类似下面的代码片段。从其中得到一个Hasmap,其中Key为Integer(也就是年龄),value为list。 映射[[10,{1}],[20,{2,3,4}],[30,{5}].[40,{6}]]; 提前致谢.......!
我有一个简单的循环,将元素从一个
我试图将JSON字符串(必须是列表)转换为对象列表: 这是我的服务。class: 我得到了: InvalidDefinitionException:无法构造的实例(不存在像默认构造那样的创建者): 更新: 但仍然是个例外: InvalidDefinitionException:无法构造的实例(不存在像默认构造那样的创建者):
问题内容: 在我的Android项目中,我试图将收到的JSONArray转换为List。借助这个SO答案,我走得更远。我现在有以下代码: 不幸的是,它在最后一行抱怨Gson类型的fromJson(String,Type)方法不适用于参数(JSONArray,Type)。我真的不知道该怎么解决。 有人知道我该怎么解决吗? 问题答案: 如果您在此处看到答案,您会注意到该方法中的第一个参数是(json对