TreeMap是一个非常有用的数据结构,它实现了SortedMap接口,能够存储键值对,并根据键的自然顺序或者自定义顺序进行排序。TreeMap提供了快速且具有预测性的操作,对于需要有序键值对的场景来说非常适用。
插入元素
创建TreeMap的最基本方法是使用构造器。以下是一个例子:
TreeMap<Integer, String> treeMap = new TreeMap<>();
然后,我们可以添加元素到TreeMap中。如果键已经存在,那么新的值将替换旧的值。
treeMap.put(1, "one"); treeMap.put(2, "two"); treeMap.put(3, "three");
我们也可以通过使用putAll
方法一次性添加多个元素。
Map<Integer, String> map = new HashMap<>(); map.put(4, "four"); map.put(5, "five"); treeMap.putAll(map);
获取元素
我们可以使用get
方法根据键获取值。如果键不存在,将返回null。
String value = treeMap.get(1); // one
遍历TreeMap
遍历TreeMap有多种方法。例如,我们可以使用keySet
方法获取所有的键,然后进行遍历。
for (Integer key : treeMap.keySet()) { System.out.println("Key: " + key + ", Value: " + treeMap.get(key)); }
删除元素
我们可以使用remove
方法根据键删除元素。如果键不存在,将返回null。
String removedValue = treeMap.remove(2); // 删除了"two"
在创建TreeMap时,元素的排序是根据键的自然顺序。如果需要自定义排序,可以在创建TreeMap时传入一个自定义的Comparator。
import java.util.Comparator; public class CustomComparator implements Comparator<String> { @Override public int compare(String s1, String s2) { return Integer.compare(s1.length(), s2.length()); } }
TreeMap<String, String> treeMap = new TreeMap<>(new CustomComparator()); treeMap.put("abcd", "value1"); treeMap.put("abc", "value2"); treeMap.put("ab", "value3"); // treeMap现在将按键的长度排序,而不是按字典顺序
TreeMap的特点:有序性:TreeMap中的元素按照键的自然顺序或者自定义顺序进行排序。
唯一性:TreeMap中的键是唯一的,每个键只能对应一个值。
高效性:TreeMap的时间复杂度为O(log n),其中n是TreeMap中元素的数量。
标签:自定义,元素,TreeMap,treeMap,put,new From: https://www.cnblogs.com/kandh/p/17856235.html