Java - TreeMap类


Java - TreeMap类

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

您应该注意,与哈希映射不同,树映射保证其元素将按升序键顺序排序。

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

Sr.No. 构造函数和描述
1

TreeMap( )

此构造函数构造一个空树图,该图将使用其键的自然顺序进行排序。

2

TreeMap(Comparator comp)

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

3

TreeMap(Map m)

此构造函数使用m中的条目初始化树映射,该映射将使用键的自然顺序进行排序。

4

TreeMap(SortedMap sm)

此构造函数使用SortedMap sm中的条目初始化树映射,该映射将按与sm相同的顺序排序

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

Sr.No. 方法和描述
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(地图)

将指定映射中的所有映射复制到此映射。

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