TreeMap&TreeSet的常用用法汇总

TreeMap 的常用方法

  • TreeMap中的元素默认按照keys的自然排序排列。

  • 对Integer来说,其自然排序就是数字的升序;对String来说,其自然排序就是按照字母表排序

  • 降序排序可以这样

TreeMap<Integer, String> map = new TreeMap<>(Comparator.reverseOrder());

增加方法

增添元素
  • V put(K key, V value):将指定映射放入该TreeMap中
  • V putAll(Map map):将指定map放入该TreeMap中

删除元素

  • void clear():清空TreeMap中的所有元素
  • V remove(Object key):从TreeMap中移除指定key对应的映射

修改元素

V replace(K key, V value):替换指定key对应的value值
boolean replace(K key, V oldValue, V newValue):当指定key的对应的value为指定值时,替换该值为新值

查找元素

  • boolean containsKey(Object key):判断该TreeMap中是否包含指定key的映射
  • boolean containsValue(Object value):判断该TreeMap中是否包含有关指定value的映射
  • Map.Entry<K, V> firstEntry():返回该TreeMap的第一个(最小的)映射
  • K firstKey():返回该TreeMap的第一个(最小的)映射的key
    Map.Entry<K, V> lastEntry():返回该TreeMap的最后一个(最大的)映射
  • K lastKey():返回该TreeMap的最后一个(最大的)映射的key
  • v get(K key):返回指定key对应的value
  • SortedMap<K, V> headMap(K toKey):返回该TreeMap中严格小于指定key的映射集合
  • SortedMap<K, V> subMap(K fromKey, K toKey):返回该TreeMap中指定范围的映射集合(大于等于fromKey,小于toKey)

遍历接口

  • Set<Map<K, V>> entrySet():返回由该TreeMap中的所有映射组成的Set对象
  • void forEach(BiConsumer<? super K,? super V> action):对该TreeMap中的每一个映射执行指定操作
  • Collection values():返回由该TreeMap中所有的values构成的集合

其他方法

  • Object clone():返回TreeMap实例的浅拷贝
  • Comparator<? super K> comparator():返回给该TreeMap的keys排序的comparator,若为自然排序则返回null
  • int size():返回该TreepMap中包含的映射的数量

遍历方式

for循环
for (Map.Entry entry : treeMap.entrySet()) {
      System.out.println(entry);
}
迭代器循环
Iterator iterator = treeMap.entrySet().iterator();
while (iterator.hasNext()) {
      System.out.println(iterator.next());
}

TreeSet 的用法

Java中的TreeSet是Set的一个子类,TreeSet集合是用来对象元素进行排序的,同样他也可以保证元素的唯一
TreeSet是用来排序的, 可以指定一个顺序, 对象存入之后会按照指定的顺序排列

使用方式

a.自然顺序(Comparable)
  TreeSet类的add()方法中会把存入的对象提升为Comparable类型
  调用对象的compareTo()方法和集合中的对象比较
  根据compareTo()方法返回的结果进行存储
  
b.比较器顺序(Comparator)
  创建TreeSet的时候可以制定 一个Comparator
  如果传入了Comparator的子类对象, 那么TreeSet就会按照比较器中的顺序排序
  add()方法内部会自动调用Comparator接口中compare()方法排序
  调用的对象是compare方法的第一个参数,集合中的对象是compare方法的第二个参数
  
c.两种方式的区别
  TreeSet构造函数什么都不传, 默认按照类中Comparable的顺序(没有就报错ClassCastException)
  TreeSet如果传入Comparator, 就优先按照Comparator

构造方法

在这里插入图片描述

常用方法

  • boolean add(E e) 添加元素

  • addAll(Collection )批量添加

  • ceiling(E e) 返回set中 >= 给的元素的最小元素,如果不存在,返回null

  • floor(E e) 返回set中 <= 给的元素的最小元素,如果不存在,返回null

  • first() 返回 set 中 第一个元素(排序后最小的)

  • last() 返回set中 最后一个元素(最高的)

  • clear()移除set中元素

  • clone()返回副本

  • contains(Object o)返回set中是否包含给定元素

  • descendingIterator()返回降序迭代器

  • Iterator()返回升序迭代器

  • descendingSet()返回逆序视图

  • headSet( E toElement) 返回此set的部分视图,其中元素严格小于 E

  • subSet

  • lower(e) 返回严格小于给定元素的最大元素,没有返回null

  • higher(e)返回严格大于给定元素的最小元素,没有返回null

  • pollfirst()获取并移除第一个元素

  • polllast()获取并移除最后一个元素

  • ![在这里插入图片描述](https://img-blog.csdnimg.cn/40df51a336d74993b0a278209b29699d.png在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值