TreeMap总结

TreeMap总结

1 概述

​ TreeMap是Map接口的一个实现类,可以实现存储元素的自动排序。在TreeMap中,键值对之间按键有序,TreeMap的实现基础是平衡二叉树,也称红黑树。

2 构造函数

  • TreeMap():无参的空构造函数,所有键插入有序。
  • TreeMap(Comparator<? super K> comparator):指定元素排序所用的比较器,key排列顺序由比较器指定。
  • TreeMap(Map<? extends K, ? extends V> m):用指定Map填充TreeMap,所有键按照自然排序。
  • TreeMap(SortedMap<K,? extends V> m):该TreeMap包含与指定的SortedMap相同的映射,并使用相同的顺序。

3 常用方法

方法功能描述
put(K key, V value)该方法用于添加一个Entry到TreeMap对象,key,value;如果key对应的值已经存在,则将key对应的值修改为value
putAll(Map map)将指定map放入该TreeMap中
void clear()清空TreeMap中的所有元素
V remove(Object key)从TreeMap中移除指定key对应的映射,返回与key关联的值,如果没有映射,返回null
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构成的集合

4 遍历方法

for:

for (Map.Entry entry : treeMap.entrySet()) {
      System.out.println(entry);
}

迭代器:

Iterator iterator = treeMap.entrySet().iterator();
while (iterator.hasNext()) {
      System.out.println(iterator.next());
}

5 与hashMap和LinkedHashMap比较

  • HashMap可实现快速存储和检索,但其缺点是其包含的元素是无序的,这导致它在存在大量迭代的情况下表现不佳
  • LinkedHashMap保留了HashMap的优势,且其包含的元素是有序的。它在有大量迭代的情况下表现更好
  • TreeMap能便捷的实现对其内部元素的各种排序,但其一般性能比前两种map差。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值