博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【方法2】删除Map中Value反复的记录,而且仅仅保留Key最小的那条记录
阅读量:5137 次
发布时间:2019-06-13

本文共 2067 字,大约阅读时间需要 6 分钟。

依据guigui111111的建议:先把Map按Key从大到小排序,然后再把Key和Value互换。这也是一种非常好的思路,我写了一下代码,顺便贴上来,供大家參考与分享。

package shuai.study.map;import java.util.Comparator;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;import java.util.TreeMap;/** * @author shengshu *  */public class UniqueMap1 {	// Transfer to sorted Map	public static Map
transferToSortedMap(Map
map) { // Define comparator for TreeMap // Note: Sort according to descending, because retain the smaller Key's record when exchanging Map's Key and Value Map
sort_map = new TreeMap
(new Comparator
() { @Override public int compare(String key1, String key2) { return key2.hashCode() - key1.hashCode(); } }); sort_map.putAll(map); return sort_map; } // Exchange Map's Key and Value public static Map
exchangeMap(Map
map) { Map
exchange_map = new TreeMap
(); for (String key : map.keySet()) { String value = map.get(key); exchange_map.put(value, key); } return exchange_map; } // Print Map public static void printMap(Map
map) { Iterator
> iterator = map.entrySet().iterator(); while (iterator.hasNext()) { Entry
entry = iterator.next(); String key = entry.getKey(); String value = entry.getValue(); System.out.println(key + " --> " + value); } } public static void main(String[] args) { Map
map = new HashMap
(); map.put("A", "1"); map.put("C", "3"); map.put("D", "2"); map.put("B", "3"); map.put("E", "3"); // Sort Map by descending order // Note: Sort according to descending, because retain the smaller Key's record when exchanging Map's Key and Value Map
sort_map = UniqueMap1.transferToSortedMap(map); // Exchange Key and Value for overlapping repetition record Map
exchange_map = UniqueMap1.exchangeMap(sort_map); // Exchange Map for recovering Key and Value, this Map is what we want exchange_map = UniqueMap1.exchangeMap(exchange_map); // Print Map UniqueMap1.printMap(exchange_map); }}

转载于:https://www.cnblogs.com/bhlsheji/p/4218149.html

你可能感兴趣的文章
图的割点、桥与双连通分支
查看>>
shiro 实现登录认证和权限控制
查看>>
LR脚本自定义显示Controller虚拟用户状态
查看>>
SWT 全接触
查看>>
sql server mdx
查看>>
ruby正则表达式
查看>>
[移动端] IOS下border-image不起作用的解决办法
查看>>
springmvc集成Freemarke配置的几点
查看>>
自己写的仿爱奇艺综艺频道轮播图,没有淡入淡出效果
查看>>
提炼游戏引擎系列:第一次迭代
查看>>
Django 学习
查看>>
Android的事件处理机制详解(二)-----基于监听的事件处理机制
查看>>
s5-12 RIP
查看>>
Linux-以指定用户运行redis
查看>>
Linux-socket的close和shutdown区别及应用场景
查看>>
初探Oracle全栈虚拟机---GraalVM
查看>>
移动端的点击滚动逻辑实现。
查看>>
xpath
查看>>
sqlserver 中数据导入到mysql中的方法以及注意事项
查看>>
python 协程(单线程中的异步调用)(转廖雪峰老师python教程)
查看>>