所谓类集框架就是JDK提供的一系列类和接口,分为列表(List)、集合(Set)、映射(Map)。
类集框架的顶级接口有两个,其中Collection接口是Iterator接口的子接口,Set接口和List接口都是Collection接口的子接口,Collection接口中的最主要方法有以下:
boolean add(Object o) 向集合中加入一个对象
void clear() 清空集合当中所有的对象
boolean isEmpty() 判断集合是否为空
remove(object o) 删除集合当中的一个对象的引用
int size() 返回集合中元素的数目
可以看出,HashSet是Set的实现类,我们写一个简单的程序:
import java.util.Set;
import java.util.HashSet;
public class Setset{
public static void main(String[] args){
HashSet
hashSet = new HashSet
(); //生成HashSet的对象
Set
set = hashSet; //向上转型为Set类型
set.add("Bonnie");
set.add("I");
set.add("love");
set.add("u");
int size = set.size();
System.out.println(size);
}
}
但是Set和List不一样,List相当于一个数组可以通过下标来操作,如遍历等操作,但是Set是一个集合,没有顺序的概念,那么该如何完成Set的遍历呢,这时候就要用到迭代器,我们需要用到Iterator接口中的方法hasNext()和next(),要使用迭代器就必须生成一个迭代器对象,如何生成Iterator对象呢:
Iterator<E> it = set.iterator();
//iterator()方法属于Collection接口里的方法
这样既可生成一个Iterator对象,通过调用这个对象的两个方法,我们可以把集合中的元素一个一个取出来。
import java.util.Set;
import java.util.HashSet;
import java.util.Iterator;
public class Setiterator{
public static void main(String[] args){
HashSet
hashSet = new HashSet
();
Set
set = hashSet;
set.add("Bonnie");
set.add("I");
set.add("love");
set.add("u");
Iterator
it = set.iterator(); //iterator()方法属于Collection接口里的方法
while(it.hasNext()){
System.out.print(it.next() + " ");
}
}
}
可以看到输出的String的排列顺序跟存进去的顺序不一样。