求一个好的方法判断一个集合中值是否重复

解决方案 »

  1.   

    ArrayList   boolean contains(Object elem) 
     
      

  2.   


    int indexOf(Object elem) 
      

  3.   

    自己看API,有现成的,如果是自己的类,就重写equals和hasCode就可以
      

  4.   

    java.utill.Collection
     boolean contains(Object o) 
     
      

  5.   

    集合的contains方法
    不过有些集合判断重复是调用equals方法判断的,有的集合需要调用equals和hashCode方法判断,所以注意一下你的类重写一下这些方法就好了。
      

  6.   

    static boolean isContains(List<String> list) {
    if (new HashSet<String>(list).size() == list.size()) {
    return true;
    } else {
    return false;
    }
    }
      

  7.   


    /**
     * @param collection 要判断的集合
     * @return 集合的元素是否唯一
     * @throws NullPointerException 如果参数null
     */
    public static boolean isUnique(Collection<? extends Object> collection) {
      return collection.size() == new HashSet(collection).size();
    }
      

  8.   

    你要看你使用的是那种类型的集合了,set是不允许重复元素的,map的主键也不允许重复值,list无限制,可以包含重复元素,因此对于list的判断可以简单调用boolean contains(Object o) 
      

  9.   

    把list里的数据放到set里 比较下两个集合的大小 如果相等表示没有重复,否则表示list里有重复数据
      

  10.   

     public   void   static   main(){   
        HashSet   h=new   HashSet(); 
        int   i=11000; 
        while(i--> 0) 
        { 
            xx   x=new   xx(得到的整形参数); 
            if(!h.contains(x)) 
          { 
                h.add(x);   
            }     } 

      

  11.   

    import   java.util.*; public   class   T060428   { /** 
      *   @param   args 
      */ 
    public   static   void   main(String[]   args)   { 
    //   TODO   Auto-generated   method   stub 
    HashSet <TT>   set   =   new   HashSet <TT> (); 
    set.add(new   TT(1)); 
    set.add(new   TT(2)); 
    System.out.println(set); 
    set.add(new   TT(1)); 
    System.out.println(set); } } class   TT{ 
    int   a; 
    public   TT(int   a){ 
    this.a   =   a; 
    } public   int   hashCode(){ 
    return   a; 
    } public   boolean   equals(Object   o){ 
    return   o   instanceof   TT   ?   ((TT)o).a==a   :   false; 
    } public   String   toString(){ 
    return   " "+a;