Java 教程

Java 控制语句

面向对象编程

Java 内置类

Java 文件处理

Java 错误和异常

Java 多线程

Java 同步

Java 网络

Java 集合

Java 接口

Java 数据结构

Java 集合算法

高级 Java

Java 杂项

Java API 和框架

Java 类参考

Java 有用资源

Java - TreeMap 类



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

请注意,与哈希映射不同,TreeMap 保证其元素将按升序键顺序排序。

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

序号 构造函数和描述
1

TreeMap( )

此构造函数构建一个空的 TreeMap,它将使用其键的自然顺序进行排序。

2

TreeMap(Comparator comp)

此构造函数构建一个空的基于树的映射,它将使用 Comparator comp 进行排序。

3

TreeMap(Map m)

此构造函数使用来自 m 的条目初始化一个 TreeMap,它将使用键的自然顺序进行排序。

4

TreeMap(SortedMap sm)

此构造函数使用来自 SortedMap sm 的条目初始化一个 TreeMap,它将按与 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()

返回此映射中包含的映射的 Set 视图。

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
java_collections.htm
广告