RT。
    如果我有很大规模的字符串数组,我想知道其中是否有完全一样的字符串,怎么用一个比较快的方法得到?
    请大家指教!~~
        PS: 数据较多, n * n 的方法请不要说了~~

解决方案 »

  1.   

    准备一个set和list,一个循环向set里放入,当set.add(XXX)返回false时,把数组中的值放入list,一次循环之后看list里有什么,就知道原来数组里有什么重复的了
      

  2.   


    // 入口参数  arr ---- 待检查的字符串数组
    // 返回: 包含所有重复字符串的List
    public List<String> duplicate(String[] arr) {
    List<String> r = new ArrayList<String>();
    HashMap<String,Integer> map = new HashMap<String,Integer>();
    for (int i=0; i<arr.length; i++)
    if (map.containsKey(arr[i])) r.add(arr[i]);
    else map.put(arr[i], 0);
    return r;
    }
      

  3.   

    好方法,我以前有利用数据库Key值唯一的方式做过,不过太麻烦,没想到用set,呵,不过我后面通过字典排序的方法做到了,效果应该是一样的,虽然没你这个方法快,呵呵。谢谢!~~
      

  4.   

    呵,与1楼用的方法一样,只是数据结构不一样,很好的~~呵,CSDN大牛就是多呀~~谢谢
      

  5.   

    呵呵~~用归并n * log n
      

  6.   

    如果要找出重复元素的话楼上两位的方法都可以。
    如果只是判断是否重复也可以这样做。
    if(a.length == new HashSet<String>(Arrays.asList(a)).size())
    {
       System.out.println("有重复数据");
    }