【无标题】JAVA学习-集合.使用TreeMap

       TreeMap 是 Java 中的一种有序映射(SortedMap)实现,它根据键的自然顺序进行排序,或者根据自定义的 Comparator 进行排序。TreeMap 的底层实现是红黑树(Red-Black Tree),这使得它的插入、删除和搜索操作的时间复杂度为 O(log n)。

一、特点:

1. TreeMap是有序的,根据键的顺序进行排序,默认是按照键的自然顺序进行排序,也可以使用自定义的Comparator来进行排序。
2. TreeMap不允许键为null,但允许值为null。
3. TreeMap是非同步的,不是线程安全的。

二、使用方法:

1. 创建TreeMap对象:

可以使用无参构造方法创建一个空的TreeMap,或者使用带有Comparator参数的构造方法创建一个具有自定义排序方式的TreeMap。

2. 添加键值对:

使用put(key, value)方法将键值对添加到TreeMap中,如果键已经存在,则会覆盖原来的值。

3. 获取值:

使用get(key)方法根据键获取对应的值。

4. 遍历:

使用entrySet()方法获取键值对的集合,然后使用foreach循环或迭代器遍历集合中的元素。

5. 删除键值对:

使用remove(key)方法根据键删除对应的键值对。

6. 其他常用方法:

例如size()获取元素的个数,containsKey(key)检查键是否存在,isEmpty()检查是否为空等。

下面是一个示例代码,展示了如何使用TreeMap:

 

import java.util.Comparator;
import java.util.TreeMap;
public class TreeMapExample {
    public static void main(String[] args) {
        // 创建TreeMap对象
        TreeMap<Integer, String> treeMap = new TreeMap<>();        
        // 添加键值对
        treeMap.put(3, "Three");
        treeMap.put(1, "One");
        treeMap.put(2, "Two");
        // 获取值
        String value = treeMap.get(2);
        System.out.println("Value for key 2: " + value);        
        // 遍历
        for (var entry : treeMap.entrySet()) {
            System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
        }        
        // 删除键值对
        treeMap.remove(1);        
        // 判断是否包含键
        boolean containsKey = treeMap.containsKey(3);
        System.out.println("Contains key 3: " + containsKey);        
        // 获取元素个数
        int size = treeMap.size();
        System.out.println("Size of TreeMap: " + size);
        // 使用自定义排序方式的TreeMap
        TreeMap<String, Integer> customTreeMap = new TreeMap<>(Comparator.reverseOrder());
        customTreeMap.put("Three", 3);
        customTreeMap.put("One", 1);
        customTreeMap.put("Two", 2);        
        // 遍历自定义排序方式的TreeMap
        for (var entry : customTreeMap.entrySet()) {
            System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
        }
    }
}

       在上述示例中,首先创建了一个TreeMap对象,并通过put方法添加了几个键值对。接着使用get方法获取键为2的值,并使用entrySet方法获取键值对的集合进行遍历。随后使用remove方法删除了键为1的键值对,并使用containsKey方法判断是否包含键为3的键值对。最后使用size方法获取元素个数并输出。另外,也展示了使用自定义排序方式的TreeMap的示例。

(文章为作者在学习java过程中的一些个人体会总结和借鉴,如有不当、错误的地方,请各位大佬批评指正,定当努力改正,如有侵权请联系作者删帖。)

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值