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

  • 相关阅读:
    环境部署(二):Linux下安装jenkins
    环境部署(一):Linux下安装JDK
    jenkins简单安装及配置(Windows环境)
    python相关资料链接
    性能测试相关资料链接
    管理篇:测试Leader应该做哪些事
    进阶篇:软件测试工程师的岗位职责
    基础篇:如何做一名专业的软件测试工程师
    python:面向对象编程之Zope.interface安装使用
    Django:Python3.6.2+Django2.0配置MySQL
  • 原文地址:https://www.cnblogs.com/dingchenghong/p/2517598.html
Copyright © 2011-2022 走看看