Map的实现类:TreeMap

news2024/10/11 19:45:09

1.存储结构:红黑树

2.实现了SortedMap接口(是Map的子接口),可以对key自动排序。

3.实例代码:Student类和Demo03

如果出现类转换异常  参考【TreeSet(红黑树)】

package com.map;

import java.util.Objects;

public class Student implements Comparable<Student>{
    private String name;
    private int stuNo;

    public Student(String name, int stuNo) {
        this.name = name;
        this.stuNo = stuNo;
    }

    public String getName() {
        return name;
    }

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

    public int getStuNo() {
        return stuNo;
    }

    public void setStuNo(int stuNo) {
        this.stuNo = stuNo;
    }

    @Override
    public String toString() {
        return "Student [name=" + name + ", stuNo=" + stuNo + "]";
    }

    @Override
    public int compareTo(Student o) {
        int n1 = this.getStuNo()-o.getStuNo();
        int n2 = this.name.compareTo(o.getName());
        return n1==0?n1:n2;
    }
}
package com.map;

import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

/**
 * TreeMap集合的使用
 * 存储结构:红黑树
 */
public class Demo03 {
    public static void main(String[] args) {
        //创建集合
        TreeMap<Student, String> treeMap = new TreeMap<>();
        //创建学生对象
        Student s1 = new Student("小王", 100);
        Student s2 = new Student("小刘", 101);
        Student s3 = new Student("小方", 102);
        Student s4 = new Student("小舟", 103);
        //1添加数据
        treeMap.put(s1,"北京");
        treeMap.put(s2,"上海");
        treeMap.put(s3,"福建");
        treeMap.put(s4,"重庆");
        System.out.println("学生个数:"+treeMap.size());
        System.out.println(treeMap);

        //2删除数据
        treeMap.remove(s1);
        System.out.println(treeMap);

        //3遍历数据
        System.out.println("--------keySet()-----------");
        Set<Student> set = treeMap.keySet();
        for(Student s : set){
            System.out.println(s);
        }
        System.out.println("--------entrySet()-----------");
        Set<Map.Entry<Student, String>> entries = treeMap.entrySet();
        for(Map.Entry<Student, String> entry : entries){
            System.out.println(entry.getKey()+" "+entry.getValue());
        }
    }
}

结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2205653.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

苍穹外卖P19--异常处理

以上传数据库数据重复为例&#xff0c;进行异常处理。 接口文档报错&#xff1a; 重新启动&#xff1a;

Arduino中使用PS2手柄

目录 1、PS2手柄介绍 2、PS2库文件添加 3、Auduino代码 4、测试 5、测试程序和库文件下载连接 1、PS2手柄介绍 PS2手柄介绍见下面博客 STM32中使用PS2手柄_stm32 ps2-CSDN博客 PS2手柄按钮分布 2、PS2库文件添加 库文件和测试程序一起打包提供下载 3、Auduino代码 #in…

【数据结构】二叉堆一文详解,附demo

有时候也挺迷惑的&#xff0c;技术那么多&#xff0c;感觉学什么都来不及&#xff0c;又什么都得学&#xff0c;经常一看别人&#xff0c;哇&#xff0c;比你年轻比你厉害&#xff0c;然后自己emo一下又要鸡血模式&#xff0c;就挺无语的&#xff0c;但愿我们的坚持与努力都不白…

“炫我”受邀出席虚拟现实及元宇宙产业创新论坛!

当前&#xff0c;新一轮科技革命和产业变革向纵深演进&#xff0c;虚拟现实及元宇宙等相关产业加速发展&#xff0c;催生了新产业新业态新模式&#xff0c;发展潜力巨大、应用前景广阔。 9月27日&#xff0c;由北京市科学技术委员会、中关村科技园区管理委员会&#xff0c;北京…

攻防世界1

pwnstack 发现是64位文件 发现vuln双击进入 看到read知道这里是要将B1&#xff08;177&#xff09;的数据输入buf&#xff0c;这里涉及了栈溢出 发现system和binsh 后门 A8十进制是168 exp&#xff1a; from pwn import * context(oslinux,archamd64,log_leveldebug) io rem…

生产及质量BI应用场景方案(可编辑37页PPT)

荐言分享&#xff1a;随着全球化的深入发展&#xff0c;制造业面临的竞争日益激烈。为了在市场中脱颖而出&#xff0c;企业需要不断提升自身的生产效率、降低成本&#xff0c;同时保证产品质量。现代消费者的需求日益多样化&#xff0c;对产品的个性化、定制化和品质要求越来越…

【unity踩坑】打开vs2022没有文字联想/杂项文件

unity打开vs2022没有文字联想 修改外置编辑器安装unity开发插件vs编辑器显示杂项文件 修改外置编辑器安装unity开发插件 参考 在unity项目里选择Edit-> Preferences->External Tools然后更换编辑器 在vs工具界面添加unity游戏开发选项。 重新打开还是有问题&#xff…

记录搜罗到的Matlab 对散点进行椭圆拟合

需要基于一些散点拟合椭圆估计并计算出椭圆的参数和周长&#xff0c;搜罗到直接上代码 &#xff08;1&#xff09;有用的椭圆拟合及参数计算函数 function W fitellipse(x,y) % 构造矩阵 D [x.*x, x.*y, y.*y, x, y,ones(size(x))]; S D*D; G zeros(6); G(1,3) 2; G(3,1)…

深入探讨B+树索引的基本概念、工作原理以及在MySQL中的应用

文章目录 1. B树的基本概念2. B树在MySQL中的实现3. 示例代码4. 结论 在数据库管理系统中&#xff0c;索引是一种特殊的文件&#xff0c;它能够提高数据检索的速度。MySQL作为最流行的开源关系型数据库之一&#xff0c;提供了多种索引类型来满足不同的性能需求。其中&#xff0…

windows端口被占用但是查不到进程的问题排查

在开发环境上经常遇到端口被占用&#xff0c;但是 netstat -ano|findstr 3306 查不到进程号&#xff0c;没法强杀解决。 这种情况&#xff0c;很有可能端口被排除了&#xff0c;可用命令&#xff1a; netsh interface ipv4 show excludedportrange protocoltcp 可以看到mysql的…

web-前置技能(HTTP协议)-CTFHub

前言 在众多的ctf平台当中&#xff0c;作者认为ctfhub对于初学者来说&#xff0c;是入门平台的不二之选。ctfhub通过自己独特的技能树模块&#xff0c;可以帮助初学者来快速入门。具体请看官方介绍&#xff1a;CTFHub。 作者正在更新ctfhub系列&#xff0c;希望小伙伴们多多支…

多元线性回归:机器学习中的经典模型探讨

引言 多元线性回归是统计学和机器学习中广泛应用的一种回归分析方法。它通过分析多个自变量与因变量之间的关系&#xff0c;帮助我们理解和预测数据的行为。本文将深入探讨多元线性回归的理论背景、数学原理、模型构建、技术细节及其实际应用。 一、多元线性回归的背景与发展…

小米开放式耳机好不好用?小米、南卡、倍思、飞利浦热门开放式耳机一周测评!

​开放式耳机正成为潮流&#xff0c;它们不仅佩戴舒适&#xff0c;音质也出色&#xff0c;特别受到音乐发烧友和运动爱好者的追捧。作为一名多年的数码测评博主&#xff0c;我也早就对开放式耳机感兴趣了&#xff0c;只是最近一直没时间来好好测评下&#xff0c;今天一下子买了…

计算机网络实验二:FTP服务器配置

ftp服务器配置 要求&#xff1a; 1. 学会配置FTP服务器、能在FTP客户端进行下载和上传文件 2. 进一步熟悉ipconfig和ping命令 3. 进一步理解FTP工作原理和流程 1、FTP服务器配置&#xff08;FileZilla Server&#xff09; 第一步安装FileZilla Server&#xff0c;直接下一步…

二、安装vmtools

1、 介绍 vmtools 安装后&#xff0c;可以让我们在 windows 下更好的管理 vm 虚拟机。可以设置 windows 和 centos 的共享文件夹 当时当我们发现安装虚拟机工具位置是灰色的 右击打开终端 在终端输入命令 yum list installed | grep open-vm-*yum list installed 命令会列出…

TikTok代理IP哪里找?

对于那些希望通过社交媒体打造个人品牌的人来说&#xff0c;TikTok是现在热门的平台&#xff0c;他的流量与曝光不可小觑&#xff0c;相信很多跨境营销会选择他进行多账号营销。问题是&#xff0c;TikTok多账号很容易遇到封禁问题&#xff0c;那么如何解决&#xff1f; 一、什么…

如何查看1688阿里巴巴热销选品数据?

✅路径&#xff1a;店雷达选品中心—1688选品库—选择类目 选品前先选类目&#xff0c;初步定位符合自己产品方向后再去分析市场&#xff0c;想看全市场的品类就选择一级类目&#xff0c;也有二三级类目细分选择&#xff0c;根据商家经营目标而定 接着选择想看的市场统计周期&…

吸毛效果好的宠物空气净化器分享,希喂、霍尼韦尔、米家实测

说起宠物空气净化器&#xff0c;几年前我可能会一脸鄙夷&#xff1a;为啥要花这种智商税冤枉钱&#xff1f; 直到之前养了一只猫&#xff0c;被家中乱飞的浮毛和滂臭的异味搞到头晕&#xff0c;于是作为i一个养宠的家电测评博主&#xff0c;索性对宠物空气净化器这玩意做了超级…

教你批量在文件名后面加文字,5个方法超简单

教你批量在文件名后面加文字~在日常办公与项目管理中&#xff0c;文件的规范性与统一性至关重要。它们不仅是信息传递的载体&#xff0c;更是团队协作效率的基石。面对海量的文件资料&#xff0c;如何确保每个文件都能迅速被识别并归类&#xff0c;成为了一个不容忽视的问题。为…

基于QT(C+++Mysql)实现的带GUI的图书管理系统

图书管理系统总体设计报告 图书管理系统概述 本次项目设计并实现了一个精简的多用户图书管路系统。应用后端通过与 MySQL 进行连接实现对数据的管理。用户可以通过界面实现登陆、注册、借书、还书等操作。管理员可以通过登陆界面实现对用户和书籍的管理&#xff0c;具有添加/…