Treemap的基本用法

TreeMap:通过树结构来实现Map接口的。
TreeMap保证了映射按照升序顺序排列key
支持快速查找
键值对 key,value
key的值
由于TreeMap会对key进行排序,所有i我们必须保证所传的key是能够排序的。
如何把普通的类变成可排序的类?
实现Comparable接口,重写compareTo(Object obj)方法

class Teacher implements Comparable {
    private int age;
    private String name;

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = 10;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public int compareTo(Object arg0) {
        // TODO Auto-generated method stub
        if (!(arg0 instanceof Teacher)) {
            return 1;
        }
        Teacher t1 = (Teacher) arg0;

        return this.age - t1.getAge();
    }

}

public class MapTest extends Teacher {

    public static void main(String[] args) {
        TreeMap<Integer, String> tm = new TreeMap<Integer, String>();
        tm.put(0, "zero");
        tm.put(1, "one");
        tm.put(3, "three");
        tm.put(2, "two");
        // System.out.println(tm);// {0=zero, 1=one, 2=two, 3=three}
        // System.out.println(tm.keySet());// [0, 1, 2, 3]
        // System.out.println(tm.values());// [zero, one, two, three]

        Set<Integer> keys = tm.keySet();// set本身就是一个集合
        for (Integer key : keys) {
            System.out.print("学号:" + key + ",姓名:" + tm.get(key) + "\t");
        }

    }



### Java TreeMap 使用教程 #### 创建和初始化 TreeMap `TreeMap` 是 `Map` 接口的一种实现,它能够按照键的自然顺序对记录进行排序。创建一个简单的 `TreeMap` 实例如下所示: ```java import java.util.TreeMap; public class Main { public static void main(String[] args) { // 初始化 TreeMap TreeMap<Integer, String> tree_map = new TreeMap<>(); // 插入一些元素到 TreeMap 中 tree_map.put(10, "Value1"); tree_map.put(20, "Value2"); tree_map.put(30, "Value3"); System.out.println("原始 TreeMap:" + tree_map); } } ``` 此代码片段展示了如何声明并实例化一个新的 `TreeMap` 对象以及向其中添加条目[^3]。 #### 获取第一个和最后一个键 为了获取存储于 `TreeMap` 中的第一个或最后一条目的键,可分别调用 `firstKey()` 和 `lastKey()` 方法: ```java // 输出最小键 (即第一个键) System.out.println("tree_map.firstKey(): " + tree_map.firstKey()); // 输出最大键 (即最后一个键) System.out.println("tree_map.lastKey(): " + tree_map.lastKey()); ``` 上述代码将打印出当前映射中的最低和最高键值[^4]。 #### 查找最接近给定键的项 当需要找到大于等于指定键的最大条目时,可以使用 `ceilingEntry()` 函数;而要寻找小于等于特定键的最小条目则应该采用 `floorEntry()` 函数。这里仅展示前者作为例子: ```java // 找到 >= 15 的最小键对应的 Entry System.out.println("Ceiling entry of 15: " + tree_map.ceilingEntry(15)); ``` 这段程序会返回键不小于所提供的参数(这里是15)且尽可能小的那个键所关联的数据项[^1]。 #### 遍历 TreeMap 遍历整个 `TreeMap` 可以通过迭代器完成,也可以直接利用增强型for循环来简化操作过程: ```java // 迭代输出所有的键及其对应值 for (var entry : tree_map.entrySet()) { System.out.println(entry.getKey() + ": " + entry.getValue()); } ``` 以上就是关于 `TreeMap` 基本功能介绍及简单应用案例说明。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漁陽

彼此共勉,砥砺前行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值