java中两个map比较

    /**
     * 用map的keySet()的迭代器(性能效率较低)
     * 
     */
    public  void compareMap1 (){
 
        Map<String, String> m1 = new HashMap<String, String>();
        Map<String, String> m2 = new HashMap<String, String>();
 
        Iterator<String> iter1 = m1.keySet().iterator();
 
        while (iter1.hasNext()) {
            String m1Key = (String) iter1.next();
            if (!m1.get(m1Key).equals(m2.get(m1Key))) {//若两个map中相同key对应的value不相等
                //......
            }
        }
 
    }

   /**
     * 用map的entrySet()的迭代器(性能效率较高)
     */
    public void compareMap2(){
        Map<String, String> m1 = new HashMap<String, String>();
        Map<String, String> m2 = new HashMap<String, String>();
         
        Iterator<Entry<String, String>> iter1 = m1.entrySet().iterator();
        while(iter1.hasNext()){
            Map.Entry<String, String> entry1 = (Entry<String, String>) iter1.next();
       String m1value = entry1.getValue() == null?"":entry1.getValue();
            String m2value = m2.get(entry1.getKey())==null?"":m2.get(entry1.getKey());
                  
            if (!m1value.equals(m2value)) {//若两个map中相同key对应的value不相等
                //其他操作...
            }
        }
    }

    /**
     * 用map的entrySet()的增强型for循环(性能效率较高)
     */
    public void compareMap3(){
         Map<String, String> m1 = new HashMap<String, String>();
         Map<String, String> m2 = new HashMap<String, String>();
          
         for(Map.Entry<String, String> entry1:m1.entrySet()){
             String m1value = entry1.getValue() == null?"":entry1.getValue();
             String m2value = m2.get(entry1.getKey())==null?"":m2.get(entry1.getKey());
             if (!m1value.equals(m2value)) {//若两个map中相同key对应的value不相等
                //其他操作...
            }
         } 
    }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Ryan Miao

java中List对象列表去重或取出以及排序

面试碰到几次list的去重和排序。下面介绍一种做法: 1. list去重 1.1 实体类Student List<Student>容量10k以上,要求去重复。这...

7099
来自专栏Phoenix的Android之旅

Java面试的基础中的基础

面试时经常从Java的基础知识开始,最基础的部分莫过于Java的集合类型。我们知道Java的集合类型有三种,Set,List,Map,那这三种有什么区别呢。

981
来自专栏闻道于事

Java之集合初探(一)

一、集合概述、区别 集合是一种容器,数组也是一种容器 在Java编程中,装各种各样的对象(引用类型)的叫做容器。 为什么出现集合类? 面向对象语言对事物的体现都...

2517
来自专栏java学习

Java每日一练(2017/8/17)

每日一句 学的到东西的事情是锻炼,学不到的是磨练。 查看以前的所有练习题目以及答案:https://mp.weixin.qq.com/mp/homepage?_...

2889
来自专栏用户3030674的专栏

java集合框架(hashSet自定义元素是否相同,重写hashCode和equals方法)

/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不一致,元素不可以重复 * (通过哈希值来判断是否是同一个对象) * ---...

1482
来自专栏深度学习与计算机视觉

算法-数字在排序数组中出现的次数

题目: 统计一个数字在排序数组中出现的次数,比如排序数组为{1,2,3,3,3,4,5},那么数字3出现的次数就是3。 解题思路: 1.首先,遍历数组肯...

2095
来自专栏郭耀华‘s Blog

剑指offer第五天

28.数组中出现次数超过一半的数字 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2...

2735
来自专栏Hongten

python开发_类型转换convert

E | hongtenzone@foxmail.com  B | http://www.cnblogs.com/hongten

1642
来自专栏待你如初见

Day12

1645
来自专栏十月梦想

Map数据结构以及方法和数据遍历

    前面说过Set和Map是ES6中的新的数据结构(不是数据类型是存储数据的集合结构),上面说过,Set类似与数据的形式而这个类似与object(对象),看...

2683

扫码关注云+社区

领取腾讯云代金券