数组a 数组b
两个数组长度不同,都是string类型的
看两个数组是否有相同值

解决方案 »

  1.   

    先循环数组a,将每个元素放入一个map中。
    再循环数组b,从map中取,看是否存在相同元素。
      

  2.   

    将数组中的元素一一全部添加到一个set中。若set的size等于2个数组的长度那么无重复值,反之则有相同值
      

  3.   


    import java.util.*;public class CsdnTest {
    public static void main(String[] args) {
    String[] strArr_1 = {"1","2","3","1"}; 
    String[] strArr_2 = {"1","9","8","7"}; 
    HashSet<String> set = new HashSet<String>();
    HashMap<String,String> map = new HashMap<String, String>();
    for(String str:strArr_1)
    {
    set.add(str);
    }

    for(int i=0;i<strArr_2.length;++i)
    {

    if(!set.add(strArr_2[i])){
    map.put(String.valueOf(i), strArr_2[i]);
    }
    }

    for(String str:map.keySet())   {   
              System.out.print("strArr_2["+str+"] : "+map.get(str)+"重复\n");   
    }
    }
    }
      

  4.   

    虽然SET能够自动保证不添加相同元素,但是它也应该是通过一个一个对比实现的,和一楼的差不了多少,我觉得要是想效率高还是先排序(快速排序和归并排序都是高效的),排序过程中加入if语句进行判断。
    楼上的代码很工整,有功夫的
      

  5.   

    问题解决了  哈哈  谢谢大家
    我的数组不是很大所以用了两重循环 
    因为数组的长度不同,所以得先判断一下
                             String[] a = {"1","2","3"}; 
                            String[] b = {"9","1","8","7"};                         if (a.length > b.length) {
    for (int j=0; j<a.length; j++) {
    for (int i=0; i<b.length; i++){
    if(a[j] == b[i]){
        System.out.print("重复");   
    }
    }
    }
    } else {
    for (int i=0; i<b.length; i++){
    for (int j=0; j<a.length; j++) {
    if(a[j] == b[i]){
        System.out.print("重复");   
    }
    }
    }
    }