教程 > Java 教程 > Java 高级 阅读:27

Java TreeMap 类

返回 Java 集合框架


TreeMap 类通过使用树来实现 Map 接口。 TreeMap 提供了一种按排序顺序存储键/值对的有效方法,并允许快速检索。

应该注意,与HashMap不同,TreeMap 保证其元素将按升序键顺序排序。

以下是 TreeMap 类支持的构造函数列表。

序号 构造函数 描述
1 TreeMap( ) 此构造函数构造一个空TreeMap,将使用其键的自然顺序进行排序。
2 TreeMap(Comparator comp) 此构造函数构造一个空的基于树的Map,该Map将使用 Comparator comp 进行排序。
3 TreeMap(Map m) 此构造函数使用来自 m 的条目初始化TreeMap,它将使用键的自然顺序进行排序。
4 TreeMap(SortedMap sm) 此构造函数使用来自 SortedMap sm 的条目初始化树形图,它将按照与 sm 相同的顺序排序。

除了继承自其父类的方法外,TreeMap 还定义了以下方法

序号 方法 描述
1 void clear() 从此 TreeMap 中删除所有映射。
2 Object clone() 返回此 TreeMap 实例的浅表副本。
3 Comparator comparator() 返回用于排序此映射的比较器,如果此映射使用其键的自然顺序,则返回 null。
4 boolean containsKey(Object key) 如果此映射包含指定键的映射,则返回 true。
5 boolean containsValue(Object value) 如果此映射将一个或多个键映射到指定值,则返回 true。
6 Set entrySet() 返回此Map中包含的映射的集合视图。
7 Object firstKey() 返回此排序映射中当前的第一个(最低)键。
8 Object get(Object key) 返回此映射将指定键映射到的值。
9 SortedMap headMap(Object toKey) 返回此Map部分的视图,其键严格小于 toKey。
10 Set keySet() 返回此映射中包含的键的 Set 视图。
11 Object lastKey() 返回此排序映射中当前的最后一个(最高)键。
12 Object put(Object key, Object value) 将指定的值与此映射中的指定键相关联。
13 void putAll(Map map) 将所有映射从指定映射复制到此映射。
14 Object remove(Object key) 如果存在,则从此 TreeMap 中删除此键的映射。
15 int size() 返回此映射中键值映射的数量。
16 SortedMap subMap(Object fromKey, Object toKey) 返回此映射部分的视图,其键范围从 fromKey(包括)到 toKey(不包括)。
17 SortedMap tailMap(Object fromKey) 返回此地图部分的视图,其键大于或等于 fromKey。
18 Collection values() 返回此映射中包含的值的集合视图。

示例

以下程序说明了此集合支持的几种方法

import java.util.*;
public class TreeMapDemo {

   public static void main(String args[]) {
      TreeMap tm = new TreeMap();
      
      tm.put("Zara", new Double(3434.34));
      tm.put("Mahnaz", new Double(123.22));
      tm.put("Ayan", new Double(1378.00));
      tm.put("Daisy", new Double(99.22));
      tm.put("Qadir", new Double(-19.08));
      
      // 获取一系列条目
      Set set = tm.entrySet();
      
      Iterator i = set.iterator();
      
      // 显示元素
      while(i.hasNext()) {
         Map.Entry me = (Map.Entry)i.next();
         System.out.print(me.getKey() + ": ");
         System.out.println(me.getValue());
      }
      System.out.println();
      
      // 将1000存入Zara的账户
      double balance = ((Double)tm.get("Zara")).doubleValue();
      tm.put("Zara", new Double(balance + 1000));
      System.out.println("Zara's new balance: " + tm.get("Zara"));
   }
}

运行示例

上面示例运行结果如下

Ayan: 1378.0
Daisy: 99.22
Mahnaz: 123.22
Qadir: -19.08
Zara: 3434.34

Zara's new balance: 4434.34

返回 Java 集合框架

查看笔记

扫码一下
查看教程更方便