List<Map<String,String>> 去重 内容如: [{key:“测试”,value:“测试”},{key:“测试1”,value:“测试1”},{key:“测试”,value:“测试”}]
时间: 2024-09-11 07:17:01 浏览: 26
List<Map<String, String>> 类型的集合包含了一个个键值对的对象,其中每个对象都是一个 Map。如果需要去重,主要是针对 key 来判断是否重复。由于 Map 的 key 通常是唯一的,可以考虑使用 Set 数据结构来存储 keys,因为 Set 自然不允许有重复元素。这里是一个简单的 Java 示例:
```java
import java.util.*;
public class RemoveDuplicates {
public static void main(String[] args) {
// 原始数据
List<Map<String, String>> data = Arrays.asList(
new HashMap<>().put("key", "测试"),
new HashMap<>().put("key", "测试1"),
new HashMap<>().put("key", "测试")
);
// 使用 HashSet 存储 uniqueKeys
Set<String> uniqueKeys = new HashSet<>();
// 新的列表,只保留 key 不重复的项
List<Map<String, String>> deduplicatedData = data.stream()
.filter(map -> !uniqueKeys.contains(map.get("key")))
.collect(Collectors.toList());
// 添加新发现的 key 到 uniqueKeys
uniqueKeys.addAll(deduplicatedData.stream()
.map(Map::get)
.distinct()
.collect(Collectors.toSet()));
System.out.println(deduplicatedData);
}
}
```
运行这个程序后,`deduplicatedData` 将只会包含两个条目,因为第二个和第三个 map 对象的 key 都是相同的。