底层:树 红黑树/二叉树/平衡树
优缺点:维护数据的大小时是有序的;添加速度和删除速度高于ArrayList,比其他低;查询速度高于List低于Hash。
如果对于存储的数据有排序的要求,那么首选TreeSet.
常见方法:
方法 | 作用 |
---|---|
add() | 如果指定的元素不存在,则添加指定的元素到集合中 |
clear() | 清除此集合中的所有元素 |
remove() | 如果指定的元素存在,则删除指定的元素 |
addAll() | 如果指定的元素不存在,则添加指定的元素集合到集合中 |
removeAll() | 删除指定元素集合中的元素。 |
retainAll() | 只保留指定元素集合的元素 |
size() | 返回集合元素个数 |
isEmpty() | 判断集合是否为空,返回Boolean值,如果不包含,返回true |
contains() | 查看是否包含指定元素 |
containsAll() | 查看是否包含指定元素集合 |
iterator() | 以升序返回此集合中元素的迭代器。 |
first() | 返回此集合中当前的第一个(最低)元素 |
last() | 返回此集合中当前的最后一个(最高)元素 |
floor() | 返回此集合中小于或等于给定元素的最大元素,或者null 如果没有这样的元素 |
ceiling() | 返回此集合中大于或等于给定元素的最小元素,或者null 如果没有这样的元素 |
higher | 返回此集合中大于给定元素的最小元素,或者null 如果没有这样的元素 |
lower() | 返回此集合中小于给定元素的最大元素,或者null 如果没有这样的元素 |
迭代方法:foreach;迭代器
注意事项:
- 存在元素时默认按照字典升序的规则进行排序。
- 如果存储的元素需要按照指定的需求进行排序,创建TreeSet对象时,需指定比较器。
- 如果存在的元素时自定义对象:
- 要么自定义对象的所属类,实现了内部比较器Comparable接口,重写了compare to方法。
- 要么创建TreeSet对象时,指定了外部比较器,重写了compare方法。
- set中每个元素存储的时候,都是存储在一个map集合中,map集合的键是set中的元素,map中的值是自动添加的一个默认值。
网友评论