Java集合TreeMap用法总结

Java的TreeMap是集合框架中的一个实现类,TreeMap继承了AbstractMap。
TreeMap实现了NavigableMap接口,提供了多种方便的查找功能;
TreeMap实现了Cloneable接口,可以克隆;
TreeMap实现了Serialiable接口,可以序列化。

构造方法

  • TreeMap() 创建一个空的TreeMap,并且按照key的自然升序排序;
  • TreeMap(Comparator comparator) 创建一个空的TreeMap,并且指定排序方法;
  • TreeMap(Map m) 根据给定的Map创建一个TreeMap,按照key的自然升序排序;
  • TreeMap(SortedMap m) 根据一个有序的Map创建一个TreeMap,顺序与原Map相同。

常用方法

  • public V put(K key, V value) 添加一对键值对
  • public void putAll(Map 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 function) 按照指定函数运算修改所有键值对

其他

  • public Object clone() 克隆TreeMap
  • public Comparator 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());
        }

你可能感兴趣的:(Java集合TreeMap用法总结)