List<Map<String,String>> 使用jdk8 去重 内容如: [{key:"测试",value:"测试"},{key:"测试1",value:"测试1"},{key:"测试",value:"测试"}]
时间: 2024-09-11 11:16:53 浏览: 24
在Java 8中,你可以使用`Map`接口的特性以及集合框架提供的工具类,比如`Collectors`和`Set`去重`List<Map<String, String>>`的内容。这里是一个示例,假设我们想要去除键值对中基于键`key`的重复:
```java
import java.util.*;
import java.util.stream.Collectors;
List<Map<String, String>> list = Arrays.asList(
new HashMap<>().put("key", "测试"),
new HashMap<>().put("key", "测试1"),
new HashMap<>().put("key", "测试")
);
// 使用Stream API 和 Collectors.groupingBy() 函数去重
Map<String, List<Map<String, String>>> grouped =
list.stream()
.collect(Collectors.groupingBy(Map.Entry::getKey));
// 然后将每个键对应的唯一值放入一个新的列表
List<Map<String, String>> uniqueMaps = grouped.entrySet().stream()
.map(entry -> Collections.singletonMap(entry.getKey(), entry.getValue().get(0)))
.collect(Collectors.toList());
System.out.println(uniqueMaps);
```
运行上述代码后,`uniqueMaps` 将包含去重后的结果,例如:[{'key': '测试', 'value': '测试'}, {'key': '测试1', 'value': '测试1'}]。
阅读全文