HashSet:
一个实现Set接口的实体类。默认情况下,初始容量为16,负载系数是0.75(为什么是这样?),负载系数的值在0.0~1.0之间(这里的取值有讲究)。
Set<String> set=new HashMap<>();
set.add("a");
set.add("b");
set.add("c");
set.add("a");
HashSet中的元素是没有被排序,所以输出的是无序的,由于字符a被添加多次,但是只有一个将会被存储,因为集合中不允许有重复的元素。
LinkedHashSet:
一个用链表实现来扩展HashSet类,它不同于HashSet没有将元素进行排序,相反的,它对集合内的元素进行排序。
Set<String> set=new LinkedHashSet<>();
set.add("a");
set.add("b");
set.add("c");
set.add("a");
同样,由于LinkedHashSet是一个集合,所以它也是不能存储重复的元素。
TreeSet
TreeSet实现了SortSet接口,而SortSet接口是Set的一个子接口,它可以确保集合中的元素是有序的,这就是说明了它和LinkedHashSet一样是有序的。
Set<String> set=new TreeSet<>();
set.add("a");
set.add("b");
set.add("c");
set.add("a");