• 找出两个字符串数组中的相同元素


    public static List<String> getAllSameElement1(String[] strArr1,String[] strArr2) {  
            if(strArr1 == null || strArr2 == null) {  
                return null;  
            }  
            List<String> strList1 = new ArrayList<String>(Arrays.asList(strArr1)); //----------代码段1  
            List<String>  strList2 = new ArrayList<String>(Arrays.asList(strArr2));  //--------------代码段2  
              
            strList1.retainAll(strList2);  
            return strList1;  
        }  

    另一种实现,数组比较大的情况下

      1. 由 于最近看见一文章,是描述数据库mergeJoin 的扫描方式的,仿照里面的大致逻辑自己写了<br> 
      2.     个类似的方法。如果数组大的话,这个要比getAllSameElement1好 
      3.     
      4.          大致思路是:1.首先将两个数组A、B排序(递增)<br> 
      5.                   2.分别从A和B中各取出一元素a,b,对a和b进行比 较:<br> 
      6.                      1) 如果a与b相等,则将a或b存入一指定集合中<br> 
      7.                     2)如果a小于b,则继续取A的下一元素,再与b比 较<br> 
      8.                     3) 如果a大于b,则取B的下一个元素,与a进行比较<br> 
      9.                  3.反复进行步骤2,知道A或B的元素都比较完<br> 
      10.                  4.返回集合(存了相同的元素)<br>
    public static List<String> getAllSameElement2(String[] strArr1,String[] strArr2) {  
            if(strArr1 == null || strArr2 == null) {  
                return null;  
            }  
            Arrays.sort(strArr1);  
            Arrays.sort(strArr2);  
              
            List<String> list = new ArrayList<String>();  
              
            int k = 0;  
            int j = 0;  
            while(k<strArr1.length && j<strArr2.length) {  
                if(strArr1[k].compareTo(strArr2[j])==0) {  
                    if(strArr1[k].equals(strArr2[j]) ) {  
                        list.add(strArr1[k]);  
                        k++;  
                        j++;  
                    }  
                    continue;  
                } else  if(strArr1[k].compareTo(strArr2[j])<0){  
                    k++;  
                } else {  
                    j++;  
                }  
            }  
           return list;  
        } 

    来自:http://blog.sina.com.cn/s/blog_76ce6f790100pais.html

  • 相关阅读:
    Marshal Code Into Another Thread(STAThread)
    MongoDB分片实战(二):Sharding
    项目中如何添加CorePlot开源框架(重温Xcode链接静态库)
    Xcode4.2中将Three20开源库导入到工程项目中
    Ajax在MVC中的使用
    位枚举的学习
    MVC3+NHibernate项目实战(二) :数据库访问层
    MVC3+NHibernate项目实战(一) :项目设计
    Android VideoView
    00设计原则
  • 原文地址:https://www.cnblogs.com/dingchenghong/p/2517598.html
Copyright © 2020-2023  润新知