zoukankan      html  css  js  c++  java
  • 找出两个字符串数组中的相同元素

    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

  • 相关阅读:
    CSS3 @media 查询(制作响应式布局)
    seajs学习
    LABjs、RequireJS、SeaJS 区别
    jquery知识简单运用
    jquery拖拽
    选项卡简单版
    手风琴,回到顶部,无限运动
    分步运动
    多图片放大显示
    测试定时器、获取字符串的字节长度
  • 原文地址:https://www.cnblogs.com/dingchenghong/p/2517598.html
Copyright © 2011-2022 走看看