黑马程序员_HashSet集合

来源:互联网 发布:mac怎么打开mpp文件 编辑:程序博客网 时间:2024/05/18 05:35

------- android培训java培训、期待与您交流! ---------- 

set接口并没有添加什么额外的方法,全都是继承父类而来的。但是它里面存放的数据是唯一的。说道set就不得不说说HashSet集合了。因为它采用的是根据哈希算法来进行存储的。数据的唯一性大大提高了它的效率。这就使得我们在自定义一个要放进HashSet集合中的类要遵循一个准则:重写这个类的equals()方法和hashCode()方法时,应该尽量保证两个对象通过equals比较返回true时,它们的hashCode方法返回值也相等。

下面简单的介绍下它具有的方法吧。

  各个方法的作用描述:

        public int size() :返回set中元素的数目,如果set包含的元素数大于Integer.MAX_VALUE,返回Integer.MAX_VALUE;

        public boolean isEmpty() :如果set中不含元素,返回true ;
        public boolean contains(Object o) :如果set包含指定元素,返回true ;
        public Iterator iterator() : 返回set中元素的迭代器,元素返回没有特定的顺序,除非set提高该保证的某些类的实例 ;
        public boolean add(Object o) :如果set中不存在指定元素,则向set加入;
        public boolean remove(Object o) :如果set中存在指定元素,则从set中删除 ;
        public boolean removeAll(Collection c) :如果set包含指定集合,则从set中删除指定集合的所有元素 ;
        public void clear() :从set中删除所有元素;

如何来遍历集合呢?让我们看看下面的示例吧。

 public static void main(String[] args) {
    Set set=new HashSet();
    List list=new LinkedList();
    list.add("1");
    list.add("2");
    set.add(list);
    list=new LinkedList();
    list.add("1");
    list.add("2");
    set.add(list);
    set.add("a");
    set.add("b");
    set.add("a");
    Iterator it= set.iterator();
    while(it.hasNext())
  {
     Object ob=it.next();
     if(ob instanceof List)
    {
      System.out.println(ob+" "+"true");
    }
     else{
     System.out.println(ob+" "+"false");
    }
   }
  System.out.println(set.size()); 
}
}

通过它提供的iterator()方法我们就可以完成遍历集合的功能。但是切记,遍历的过程中可不要去改变该集合的元素<删除可以通过Iterator提供的remove()方法完成>,不然会导致错误发生的。

原创粉丝点击