java – 如何获取HashMap的Duplicate键值对?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何获取HashMap的Duplicate键值对?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1359字,纯文字阅读大概需要2分钟。
内容图文
HashMap<Integer,Integer> hashmapsample= new HashMap<Integer, Integer>();
我可以有像这样的价值观
(1 , 7)
(2 , 4)
(4 , 5)
(3, 7)
不会有任何重复的密钥.只能出现重复值
我想选择具有重复值的(Key,Value)对.
如果我将Duplicate(Key,Value)作为另一个Hashmap获得它会很棒.
我该怎么做呢?
我期待输出
(1 , 7)
(3, 7)
解决方法:
这个怎么样?
public HashMap getDuplicateValues(HashMap in)
{
// Clone input HashMap because we're removing stuff from it
in = (HashMap)in.clone();
HashMap rval = new HashMap();
Object[] keys = in.keySet().toArray();
// iterate through all keys
for(int x=0;x<keys.length;x++) {
Object value = in.get(keys[x]);
in.remove(keys[x]);
// if value is in input HashMap, store it in duplicate HashMap because it has another value
if(in.containsValue(value)) {
rval.put(keys[x],value);
}
// if value is in duplicate HashMap, store it also because it HAD another value earlier
if(rval.containsValue(value)) {
rval.put(keys[x],value);
}
}
return(rval);
}
此方法将返回输入HashMap中所有重复值的键/值对.
测试代码:
HashMap map = new HashMap();
map.put("1","2");
map.put("2","1");
map.put("3","8");
map.put("4","4");
map.put("5","6");
map.put("6","8");
map.put("7","3");
map.put("8","4");
map.put("9","4");
HashMap dups = getDuplicateValues(map);
System.out.println("MAP = "+map);
System.out.println("DUP = "+dups);
输出:
MAP = {3=8, 2=1, 1=2, 7=3, 6=8, 5=6, 4=4, 9=4, 8=4}
DUP = {3=8, 6=8, 4=4, 9=4, 8=4}
内容总结
以上是互联网集市为您收集整理的java – 如何获取HashMap的Duplicate键值对?全部内容,希望文章能够帮你解决java – 如何获取HashMap的Duplicate键值对?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。