Java TreeMap类

Java TreeMap类

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

需要注意的是,与哈希映射不同,树映射保证其元素按照键的升序排序。

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

序号 构造方法 & 描述
1 TreeMap( ) 此构造方法构建一个空的树映射,将使用其键的自然顺序进行排序。
2 TreeMap(Comparator comp) 此构造方法构建一个空的树映射,将使用比较器 comp 进行排序。
3 TreeMap(Map m) 此构造方法使用键的自然顺序初始化一个树映射,其中的条目来自于 m
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() 返回此映射中包含的映射的集合视图。
7 Object firstKey() 返回当前此排序映射中的第一个(最低)键。
8 Object get(Object key) 返回此映射将指定键映射到的值。
9 SortedMap headMap(Object toKey) 返回此映射中键严格小于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[]) {
      // Create a hash map
      TreeMap tm = new TreeMap();

      // Put elements to the map
      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));

      // Get a set of the entries
      Set set = tm.entrySet();

      // Get an iterator
      Iterator i = set.iterator();

      // Display elements
      while(i.hasNext()) {
         Map.Entry me = (Map.Entry)i.next();
         System.out.print(me.getKey() + ": ");
         System.out.println(me.getValue());
      }
      System.out.println();

      // Deposit 1000 into Zara's account
      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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程