📅  最后修改于: 2023-12-03 14:42:16.924000             🧑  作者: Mango
Java TreeMap是Java集合框架中的一种数据结构,它是一个基于红黑树(Red-Black tree)实现的Map接口。TreeMap是按照Key排序的,因此在元素遍历时,TreeMap会按照Key值的升序输出。
// 创建一个新的、空的TreeMap
TreeMap<K,V> treeMap = new TreeMap<K,V>();
// 根据指定的Comparator创建一个新的、空的TreeMap
TreeMap<K,V> treeMap = new TreeMap<K,V>(Comparator<? super K> comparator);
// 根据另一个Map创建一个新的TreeMap,新TreeMap的元素和顺序和原Map相同
TreeMap<K,V> treeMap = new TreeMap<K,V>(Map<? extends K,? extends V> map);
// 根据另一个SortedMap创建一个新的TreeMap,新TreeMap的元素和顺序和原SortedMap相同
TreeMap<K,V> treeMap = new TreeMap<K,V>(SortedMap<K,? extends V> map);
// 返回当前TreeMap中元素的个数
int size()
// 判断当前TreeMap是否为空
boolean isEmpty()
// 判断当前TreeMap中是否包含指定的Key
boolean containsKey(Object key)
// 判断当前TreeMap中是否包含指定的Value
boolean containsValue(Object value)
// 根据指定的Key返回对应的Value,如果Key不存在,则返回null
V get(Object key)
// 将指定的Key和Value插入到TreeMap中,如果Key已经存在,则覆盖原有Value,并返回原有Value
V put(K key, V value)
// 根据指定的Key从TreeMap中删除对应的元素,如果Key不存在,则返回null
V remove(Object key)
// 清空当前TreeMap
void clear()
// 返回当前TreeMap中所有Key的Set
Set<K> keySet()
// 返回当前TreeMap中所有Value的Collection
Collection<V> values()
// 返回当前TreeMap中所有Entry的Set
Set<Map.Entry<K, V>> entrySet()
import java.util.*;
public class TestTreeMap {
public static void main(String[] args) {
/*
* 创建一个TreeMap,TreeMap中的Key为String类型,Value为Integer类型
* TreeMap会按照Key的升序排序
*/
TreeMap<String, Integer> treeMap = new TreeMap<String, Integer>();
/*
* 插入元素
*/
treeMap.put("A", 1);
treeMap.put("B", 2);
treeMap.put("C", 3);
/*
* 遍历元素,输出结果为:
* A=1
* B=2
* C=3
*/
for (Map.Entry<String, Integer> entry : treeMap.entrySet()) {
System.out.println(entry.getKey() + "=" + entry.getValue());
}
/*
* 删除元素
*/
treeMap.remove("B");
/*
* 再次遍历元素,输出结果为:
* A=1
* C=3
*/
for (Map.Entry<String, Integer> entry : treeMap.entrySet()) {
System.out.println(entry.getKey() + "=" + entry.getValue());
}
}
}
Java TreeMap是一种基于红黑树的有序Map集合,它具有高效的查询、删除和插入操作,同时还能保证元素的升序输出。在使用时需要注意的是,TreeMap要求Key值必须实现Comparable接口或者提供一个Comparator,同时在迭代器使用时需要注意fail-fast机制。