List<Map<String,String>> 使用jdk8 去重 内容如: [{key:“测试”,value:“测试”},{key:“测试1”,value:“测试1”},{key:“测试”,value:“测试”}]
时间: 2024-09-11 16:16:58 浏览: 47
在Java 8中,可以利用Stream API和Collectors工具类来去重`List<Map<String, String>>`的内容。由于这里的关键在于基于"key"字段的唯一性判断,你可以通过以下步骤实现:
```java
import java.util.*;
import java.util.stream.Collectors;
List<Map<String, String>> list = Arrays.asList(
new HashMap<String, String>() {{ put("key", "测试"); }},
new HashMap<String, String>() {{ put("key", "测试1"); }},
new HashMap<String, String>() {{ put("key", "测试"); }}
);
// 使用 Collectors.groupingBy() 和 Collectors.toMap() 去重
Map<String, Map<String, String>> uniqueMaps =
list.stream()
.collect(Collectors.groupingBy(map -> map.get("key"),
Collectors.toMap(Map::get, Map::putAll)));
// 将结果转换回List<Map<String, String>>
List<Map<String, String>> deduplicatedList = uniqueMaps.values().stream()
.collect(Collectors.toList());
System.out.println(deduplicatedList);
阅读全文