比如说:{"aa","bbb","cc","dd","aa","ee","ff","cc"}如何才能更有效的检测这个数组里是否存在重复值?效率第一.......(双层for循环或者利用HashMap的方法排除)

解决方案 »

  1.   

    呵呵,那就用Hashset吧int length = 数组.length;
    HashSet set = new HashSet();
    set.add(数组);
    if(set.size()<length)
      //就一定有重复值
      

  2.   

    对,HashSet,数据越多,越能显式出它的好处来。
    其实还有更加快速的方法。
    就是把他们的HashCode放入HashSet。
    通常我觉得数据不上100,显式不出来好处。反而不如两个循环来得快速。
      

  3.   

    测试通过(数组长度20000时,耗时不到1s
    public class HashSetTest { public static void main(String[] args) {
    String[] list = new String[]{"aa","bbb","cc","dd","aa","ee","ff","cc"};
    HashSet set = new HashSet();
    for (int i = 0; i < list.length; i++)
    {
    if (set.contains(list[i]))
    {
    System.out.println(list[i] + " is already in the array");
    break;
    }
    else
    set.add(list[i]);

    } }
    }
      

  4.   

    呵呵,大家好象都说HASHSET不错,我试试去,贴子先不结,等晚上6点,还没有更好的主意话,偶就散分结帖啦~~~特别感谢lcllcl987(毛爷爷) JAVA_WEB(不停地往上爬)  healer_kx(甘草(朝圣中... ...)) krh2001(边城浪子)