1、HashSet对速度进行了优化,提供了最快的查找速度,无特殊说明一般默认是用这个Set 放到HashSet中的元素要保证唯一,应该重写hashCode方法和equals方法,但是不能保证元素有序 底层实现是哈希结构 2、TreeSet底层实现是红黑树(自平衡二叉树),不但能保证元素唯一,还能元素保证有序, 存放到TreeSet中的元素应该实现Comparable接口,重写compareTo方法,否则会抛出ClassCastException 按照该方法指定的规则维持元素的顺序 3、LinkedHashSet,底层实现是哈希表和链表,保持了HashSet的速度,还能按照插入元素的顺序维持元素顺序
HashSet是一个由hash表来实现的因此他元素是无序的
Treeset是由一个树形的结构来实现的