zoukankan      html  css  js  c++  java
  • JAVA获取两个List<String>中不同的数据

    效率非常不错

    测试结果:

    1、list1中有97277条数据,list2中有37894条数据,两个list进行对比找出不同的数据共60000条左右,用时:0.051秒

    2、list1中有97277条数据,list2中有97067条数据,两个list进行对比找出不同的数据共288条,用时:0.06秒

    下面的方法是对比两个list相互不同的数据

    也可以删除红色字的代码做成list1比list2多出多少数据

    public static List<String> getDiffrent4(List<String> list1, List<String> list2) 
        {           
               Map<String,Integer> map = new HashMap<String,Integer>(list1.size()+list2.size());
               List<String> diff = new ArrayList<String>();
               List<String> maxList = list1;
               List<String> minList = list2;
               if(list2.size()>list1.size())
               {
                   maxList = list2;
                   minList = list1;
               }
               
               for (String string : maxList) 
               {
                  map.put(string, 1);                    
               }
               
               for (String string : minList) 
               {
                   Integer cc = map.get(string);                    
                   if(cc!=null)                    
                   {
                       map.put(string, ++cc);
                       continue;                    
                   }           
                   map.put(string, 1);                    
               }
               
               for(Map.Entry<String, Integer> entry:map.entrySet())                    
               {                    
                   if(entry.getValue()==1)                    
                   {                    
                       diff.add(entry.getKey());                    
                   }                    
               }                               
               return diff;                    
        }
  • 相关阅读:
    Reverse Nodes in k-Group [LeetCode]
    Text Justification [LeetCode]
    Path Sum [LeetCode]
    Multiply Strings [LeetCode]
    Populating Next Right Pointers in Each Node II [Leetcode]
    013 集合
    012 元组
    02 isdecimal(), isdigit(), isnumeric()
    011 字符串的内置方法 三
    010 字符串的内置方法 二
  • 原文地址:https://www.cnblogs.com/kgdxpr/p/3186377.html
Copyright © 2011-2022 走看看