treemap倒叙_Java集合TreeMap用法总结

本文详细介绍了Java中的TreeMap集合,包括其构造方法、增删查改等常用操作,特别是如何进行倒序操作。TreeMap实现了NavigableMap接口,提供了如descendingMap()等方法用于降序遍历。通过示例展示了使用自增强for循环和迭代器遍历TreeMap的方式。
摘要由CSDN通过智能技术生成

Java的TreeMap是集合框架中的一个实现类,TreeMap继承了AbstractMap。

TreeMap实现了NavigableMap接口,提供了多种方便的查找功能;

TreeMap实现了Cloneable接口,可以克隆;

TreeMap实现了Serialiable接口,可以序列化。

构造方法

TreeMap() 创建一个空的TreeMap,并且按照key的自然升序排序;

TreeMap(Comparator super K> comparator) 创建一个空的TreeMap,并且指定排序方法;

TreeMap(Map extends K, ? extends V> m) 根据给定的Map创建一个TreeMap,按照key的自然升序排序;

TreeMap(SortedMap m) 根据一个有序的Map创建一个TreeMap,顺序与原Map相同。

常用方法

public V put(K key, V value) 添加一对键值对

public void putAll(Map extends K, ? extends V> map) 添加一个map的所有键值对

public V remove(Object key) 删除对应的键值对

public void clear() 删除所有元素

public Map.Entry ceilingEntry(K key) 返回map中键值不小于参数key的最小键值对应的键值对,如果没有则返回null

public K ceilingKey(K key) 返回map中键值不小于参数key的最小键值

public final boolean containsKey(Object key) 判断是否含有某一键值

public boolean containsValue(Object value) 判断是否含有某一value

public NavigableMap descendingMap() 返回一个降序排列的Map

public NavigableSet descendingKeySet() 返回一个降序排列的由键名组成的Set

public Set> entrySet() 返回由原Map的键值对组成的Set

public K firstKey() 返回第一个key

public Map.Entry firstEntry() 返回第一个键值对

public K floorKey(K key) 返回Map中不大于指定key的最大key值

public Map.Entry floorEntry(K key) 返回Map中不大于指定key的最大key值所对应的键值对

public V get(Object key) 取出指定key对应的键值对

public SortedMap headMap(K toKey) 返回key小于指定key的排序好的Map

public NavigableMap headMap(K toKey, boolean inclusive) 返回key小于或小于等于指定key的排序好的Map

public K higherKey(K key) 返回key严格大于指定key的最小键

public Map.Entry higherEntry(K key) 返回key严格大于指定key的最小键值对

public Set keySet() 返回由key组成的Set

public K lastKey() 返回最后一个key

public Map.Entry lastEntry() 返回最后一组键值对

public K lowerKey(K key) 返回key严格小于指定值的最大键

public Map.Entry lowerEntry(K key) 返回key严格小于指定值的最大键值对

public NavigableMap subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive) 返回key在指定范围内的子Map

public SortedMap subMap(K fromKey, K toKey) 返回key在指定范围内的子Map

public NavigableMap tailMap(K fromKey, boolean inclusive) 返回key小于或小于等于指定key的排序好的Map

public SortedMap tailMap(K fromKey) 返回key大于指定key的排序好的Map

public V replace(K key, V value) 修改一对键值对

public boolean replace(K key, V oldValue, V newValue) 如果键值对的原值为指定值,则修改,否则不修改

public void replaceAll(BiFunction super K, ? super V, ? extends V> function) 按照指定函数运算修改所有键值对

其他

public Object clone() 克隆TreeMap

public Comparator super K> comparator() 返回该TreeMap的比较器

遍历

TreeMap提供了很多遍历接口,通用的有keySet(), entrySet(),还有倒序的descendingKeySet(),和各种取子Map的subMap(), tailMap(), headMap(),但是最终还是要用自增强的for循环或者用迭代器来遍历。

自增强for循环

TreeMap tmap = new TreeMap<>();

tmap.put(1, "H");

tmap.put(2, "E");

tmap.put(3, "L");

tmap.put(4, "L");

tmap.put(5, "O");

for (Map.Entry entry: tmap.entrySet()) {

System.out.println(entry);

}

迭代器

Iterator iter = tmap.entrySet().iterator();

while (iter.hasNext()) {

System.out.println(iter.next());

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值