目录
hello,小伙伴们大家好,今天来看下集合TreeMap
TreeMap类是基于红黑树实现,提供一种再排序顺序中搞笑存储键值对的方式,特点如下
- Tree Map根据键存储值
- Tree Map只包含唯一的元素
- Tree Map不能有空的键,但是可以有多个空的值
- Tree Map是非同步的
- Tree Map维护升序排序
Tree Map类定义如下,实现了Navigable Map接口并扩展了Abstract Map类
public class TreeMap<K,V>
extends AbstractMap<K,V>
implements NavigableMap<K,V>, Cloneable, java.io.Serializable
{
private final Comparator<? super K> comparator;
private transient Entry<K,V> root;
//...
}
Tree Map类常用的构造方法
构造方法 | 描述 |
TreeMap() | 构造一个使用自然顺序进行排序的树 |
TreeMap(Comparator<? super K> comparator) | 构造一个使用给定的比较器进行排序的空树 |
Tree Map示例 (指定方式排序)
public static void main(String[] args) {
TreeMap<Integer, String> map = new TreeMap<>();
map.put(104,"value_4");
map.put(103,"value_3");
map.put(101,"value_1");
map.put(102,"value_2");
//降序排序
map.descendingMap().entrySet().stream().forEach(System.out :: println);
System.out.println("过滤小于等于指定键后------------------------------");
map.headMap(102,true).entrySet().stream().forEach(System.out :: println);
System.out.println("过滤大于等于指定键后------------------------------");
map.tailMap(102,true).entrySet().stream().forEach(System.out :: println);
System.out.println("过滤指定区间键后------------------------------");
map.subMap(101,false,103,true).entrySet().stream().forEach(System.out :: println);
}
好了,以上只是较常用的方法使用,就到这里了