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()
返回此映射中包含的映射的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.*;
/* 文件 : TreeMapDemo.java */
public class TreeMapDemo {
public static void main(String args[]) {
// Create a TreeMap
TreeMap hm = new TreeMap();
// 放元素到映射中...
hm.put("Maxsu", new Double(1234.34));
hm.put("Curry", new Double(1023.12));
hm.put("张小冈", new Double(1378.09));
hm.put("王道明", new Double(909.22));
hm.put("李四", new Double(-119.08));
// 获取集合中的项目
Set set = hm.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存入 Maxsu 的账户
double balance = ((Double) hm.get("Maxsu")).doubleValue();
hm.put("Maxsu", new Double(balance + 9999));
System.out.println("Maxsu账户的存款: " + hm.get("Maxsu"));
}
}
执行上面示例代码,得到以下结果 -
Curry: 1023.12
Maxsu: 1234.34
张小冈: 1378.09
李四: -119.08
王道明: 909.22
Maxsu账户的存款: 11233.34
¥ 我要打赏
纠错/补充
收藏
加QQ群啦,易百教程官方技术学习群
注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。