Set是什么?第一点:我们把这个集合想象成一个罐子,他记不住元素的顺序。
第二点:这个集合不允许出现相同的元素。
第三点:这个集合的长度表示方法是size()。
接下来从API中找几个常用的方法:
摘要 | |
---|---|
boolean | add(E e) 如果 set 中尚未存在指定的元素,则添加此元素(可选操作)。 |
boolean | addAll(Collection<? extends E> c) 如果 set 中没有指定 collection 中的所有元素,则将其添加到此 set 中(可选操作)。 |
Iterator<E> | iterator() 返回在此 set 中的元素上进行迭代的迭代器。 |
Object[] | toArray() 返回一个包含 set 中所有元素的数组。 |
常见子类:HashSet、LinkedHashSet、TreeSet三个子类的异同
HashSet:通过hascode值和equals比较两个元素是否相等,排序是按照hascode值来进行排序的。
LinkedHashSet:它继承与HashSet,所以不允许重复元素,并且加入了链表,可以保证插入顺序(性能就差了一点)
TreeSet:可以确保元素处于排序状态。包含两种排序方法:第一种是自然排序,实现comparable接口方法来进行排序(这个接口里面有compareTo方法)。第二种方法是定制排序,实现Comparator接口。