------- 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()方法完成>,不然会导致错误发生的。