Java集合之TreeSet
2017-04-26 23:04
363 查看
TreeSet继承AbstractSet,AbstractSet继承AbstractCollection并且实现了Set接口,它的底层是NavigableMap。
隐式调用带参构造。
2. 带参构造
没什么好说的,就是给底层的NavigableMap赋值。
返回底层map的大小。
2. contains(Object o)
调用map的containsKey方法。
3. add(E e)
调用map的put方法,e为key,PRESENT为value。
4. subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
获取一个子TreeSet,可以自定义是否包含头尾两个元素,除此之外,它还提供了headSet/tailSet方法。
5. first()
调用map的firstKey方法。
其实这样看下来,这个TreeSet类,基本都是在调用底层NavigableMap的一些方法来完成自己的工作,我觉得这个和HashSet的区别应该重点在与HashMap和NavigableMap的区别
构造方法
1. 无参构造public TreeSet() { this(new TreeMap<E,Object>()); }
隐式调用带参构造。
2. 带参构造
TreeSet(NavigableMap<E,Object> m) { this.m = m; } public TreeSet(Comparator<? super E> comparator) { this(new TreeMap<>(comparator)); } public TreeSet(Collection<? extends E> c) { this(); addAll(c); } public TreeSet(SortedSet<E> s) { this(s.comparator()); addAll(s); }
没什么好说的,就是给底层的NavigableMap赋值。
常用方法
1. size()public int size() { return m.size(); }
返回底层map的大小。
2. contains(Object o)
public boolean contains(Object o) { return m.containsKey(o); }
调用map的containsKey方法。
3. add(E e)
private static final Object PRESENT = new Object(); public boolean add(E e) { return m.put(e, PRESENT)==null; }
调用map的put方法,e为key,PRESENT为value。
4. subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
public NavigableSet<E> subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive) { return new TreeSet<>(m.subMap(fromElement, fromInclusive, toElement, toInclusive)); }
获取一个子TreeSet,可以自定义是否包含头尾两个元素,除此之外,它还提供了headSet/tailSet方法。
5. first()
public E first() { return m.firstKey(); }
调用map的firstKey方法。
其实这样看下来,这个TreeSet类,基本都是在调用底层NavigableMap的一些方法来完成自己的工作,我觉得这个和HashSet的区别应该重点在与HashMap和NavigableMap的区别
相关文章推荐
- Java基础之TreeSet集合使用泛型、比较器排序示例:
- JAVA学习第三十七课(常用对象API)— Set集合:TreeSet集合、比较器
- Java基础知识强化之集合框架笔记43:Set集合之TreeSet存储Integer类型的元素并遍历
- Java集合之TreeSet
- Java基础知识强化之集合框架笔记47:Set集合之TreeSet保证元素唯一性和比较器排序的原理及代码实现(比较器排序)
- 黑马程序员 java基础之TreeSet集合
- Java---28---Set集合之TreeSet
- Java基础知识强化之集合框架笔记44:Set集合之TreeSet保证元素唯一性和自然排序的原理和图解
- java基础—自定义一个比较器,对TreeSet 集合中的元素按指定方法来排序(java集合六)
- java集合——树集(TreeSet)+对象的比较
- 黑马程序员——java集合中的TreeSet
- JAVA提高教程(4)-认识Set集合之TreeSet
- Java中HashSet和TreeSet集合的本质
- Java基础知识强化之集合框架笔记45:Set集合之TreeSet存储自定义对象并遍历练习1(自然排序)
- java学习笔记:集合框架之TreeSet
- Java Set集合之Treeset
- java 集合框架(TreeSet操作,自动对数据进行排序,重写CompareTo方法)
- 黑马程序员java基础之集合Set中的TreeSet和泛型
- java集合之TreeSet
- Java基础知识强化之集合框架笔记46:Set集合之TreeSet存储自定义对象并遍历练习2(自然排序)