Java中Map去重方法:通过Set转换:使用Set转换Map的key或value,利用Set的自动去重特性。使用自定义Comparator:自定义Comparator比较Map的key或value,相同返回0,否则返回非0,再构造新的有序Map。利用第三方库:使用Guava或Apache Commons Collections等第三方库提供的方法去重。
Java中Map去重的几种方法
1. 利用Set
将Map的key或value转换为Set,Set具有自动去重的特性。
// 通过key去重 Setkeys = map.keySet(); // 通过value去重 Set values = map.values();
2. 使用自定义Comparator
使用自定义Comparator比较Map的key或value,如果相等则返回0,否则返回非0。
Comparatorcomparator = new Comparator () { @Override public int compare(K key1, K key2) { // 自定义比较逻辑 return 0; // 相等 } }; // 通过key去重 Map newMap = new TreeMap<>(comparator); newMap.putAll(map); // 通过value去重 Map newMap = new HashMap<>(); for (Entry entry : map.entrySet()) { if (!newMap.containsKey(entry.getValue())) { newMap.put(entry.getKey(), entry.getValue()); } }
3. 使用第三方库
可以使用Guava或Apache Commons Collections等第三方库提供的方法去重。
// 使用Guava MapnewMap = ImmutableMap.copyOf(map); // 使用Apache Commons Collections Map newMap = MapUtils.uniqu eValues(map);