对List进行合并去重,首先创建一个新的 List 用于存储合并去重后的结果,遍历原始的 List,将每个 Map 对象中的键值对放入一个 Set 中进行去重,最后将去重后的键值对重新组装成一个新的 Map 对象,并添加到新的 List 中。
完整实例代码如下:
java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.HashSet;
public class Main {
public static void main(String[] args) {
// 创建原始的 List<Map>
List<Map<String, Integer>> list = new ArrayList<>();
Map<String, Integer> map1 = new HashMap<>();
map1.put("a", 1);
map1.put("b", 2);
Map<String, Integer> map2 = new HashMap<>();
map2.put("a", 1);
map2.put("c", 3);
list.add(map1);
list.add(map2);
// 创建用于存储合并去重后的结果的新 List<Map>
List<Map<String, Integer>> mergedDeduplicatedList = new ArrayList<>();
// 创建用于去重的 Set<Map>
Set<Map<String, Integer>> set = new HashSet<>();
// 遍历原始的 List<Map>
for (Map<String, Integer> map : list) {
// 创建一个新的 Map 用于存储合并去重后的结果
Map<String, Integer> newMap = new HashMap<>(map);
// 如果新的 Map 成功添加到 Set 中,说明是一个新的 Map,将其添加到结果 List<Map> 中
if (set.add(newMap)) {
mergedDeduplicatedList.add(newMap);
}
}
// 输出结果
System.out.println("Original List: " + list);
System.out.println("Merged and Deduplicated List: " + mergedDeduplicatedList);
}
}