Set也是Collection的子接口,它定义了另一种形式的集合,专业上称之为Set集合。Set集合的特点如图13-9所示。
图13-9 Set类型集合
从图13-9可以看出:Set类型的集合就像是一个装苹果的筐子,程序员只要把元素存入这个筐子即可。集合中的元素像是胡乱堆积在一起,因此元素没有索引,而程序员也无法通过索引找到某个元素。Set集合与Collection基本相同,它没有定义更多的方法,但Collection并不要求集合中的元素不能相同,而Set则要求集合中的元素必须不同。如果试图把两个相同的元素加入同一个Set集合中,则添加操作会失败,add()方法返回false,新元素也不会被加入集合。Set接口的常用实现类有HashSet、TreeSet以及EnumSet,它们都符合Set集合的最基本特征。
13.3.1 HashSet类
HashSet 是Set接口的典型实现类,程序员使用Set集合时大多数都会选用这个实现类。HashSet按Hash算法来存储集合中的元素&