Set最重要的操作是查找,为查找而设计。存入HashSet的元素必须定义hashCode();
Set不保存重复的元素,元素必须唯一。通过equals()方法一确保对象的唯一性。
Set中最常被用于归属性,可以很容易的询问某个对象是否在Set中。Set是基于对象的值来确定归属性的,contains()测试Set的归属性。
Set具有Collection完全一样的接口,没有额外的功能。Set就是Collection,只是行为不同。
HashSet专门对快速查找进行了优化。
HashSet内部数据结构是哈希表,不同步。
HashSet使用了散列,所以输出是没有规律的无序的,但是速度快。
TreeSet将元素存储在红-黑数数据结构中。
TreeSet中元素必须实现Comparable接口,此接口中comparaTo()比较对象与制定对象的顺序。
TreeSet可以对集合中的元素进行排序,结果也是排序的,不同步。
LinkedHashSet具有HashSet的查询速度,且内部使用链表维护元素插入的顺序。在迭代遍历Set时,
结果会按插入的次序显示。元素也饿必须定义hashCode()方法。
常用HashSet,因为快。