TreeMap

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中元素的数量。

 

posted @   kandhera  阅读(47)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示