Java中Map去重的几种方法
1. 利用Set
将Map的key或value转换为Set,Set具有自动去重的特性。
// 通过key去重 Set<k> keys = map.keySet(); // 通过value去重 Set<v> values = map.values();</v></k>2. 使用自定义Comparator
使用自定义Comparator比较Map的key或value,如果相等则返回0,否则返回非0。
Comparator<k> comparator = new Comparator<k>() { @Override public int compare(K key1, K key2) { // 自定义比较逻辑 return 0; // 相等 } }; // 通过key去重 Map<k v> newMap = new TreeMap(comparator); newMap.putAll(map); // 通过value去重 Map<k v> newMap = new HashMap(); for (Entry<k v> entry : map.entrySet()) { if (!newMap.containsKey(entry.getValue())) { newMap.put(entry.getKey(), entry.getValue()); } }</k></k></k></k></k>3. 使用第三方库
可以使用Guava或Apache Commons Collections等第三方库提供的方法去重。
// 使用Guava Map<k v> newMap = ImmutableMap.copyOf(map); // 使用Apache Commons Collections Map<k v> newMap = MapUtils.uniqueValues(map);</k></k>以上就是java中map怎么去重的详细内容,更多请关注知识资源分享宝库其它相关文章!
版权声明
本站内容来源于互联网搬运,
仅限用于小范围内传播学习,请在下载后24小时内删除,
如果有侵权内容、不妥之处,请第一时间联系我们删除。敬请谅解!
E-mail:dpw1001@163.com
发表评论