Map的实现类:TreeMap

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;}@Overridepublic String toString() {return "Student [name=" + name + ", stuNo=" + stuNo + "]";}@Overridepublic 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.mzph.cn/diannao/55920.shtml

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

相关文章

使用Git生成SSH密钥教程(附Git常用命令)

一、为什么使用SSH&#xff1f; 使用 Git 的 SSH&#xff08;安全外壳协议&#xff09;主要有以下几个原因&#xff1a;1. 安全性&#xff1a;SSH 是一种加密的网络协议&#xff0c;用于在网络中安全地运行网络服务。使用 SSH&#xff0c;所有传输的数据都会被加密&#xff0c…

Lory: 推进大型语言模型训练的新篇章

人工智能咨询培训老师叶梓 转载标明出处 随着模型规模的增长&#xff0c;如何有效训练并利用这些模型成为了一个挑战。陈丹琦团队一项新的研究提出了一种创新的预训练方法——Lory&#xff0c;旨在解决大模型在混合专家&#xff08;MoE&#xff09;架构中的可微分性和计算效率…

主机加固的关键要素:服务器防病毒

在数字化浪潮中&#xff0c;网络安全已成为企业不可忽视的一环。尤其是安全运维人员&#xff0c;他们肩负着保护企业数据不受侵害的重任。MCK主机加固解决方案&#xff0c;正是为了应对这一挑战而生。 网络安全的严峻现实 不久前&#xff0c;一家知名企业因勒索病毒攻击而被迫…

2024 kali虚拟机安装教程,分两大步骤,图文讲解(1)

第二步链接&#xff1a; 2024 kali虚拟机安装教程&#xff0c;分两大步骤&#xff0c;图文讲解&#xff08;2&#xff09;-CSDN博客 准备工作 1.kali的iso镜像文件 2.VMware Workstation Pro 虚拟机软件 正式开始 1.创建新的虚拟机&#xff0c;勾选自定义&#xff08;高级…

ssm基于SSM框架的餐馆点餐系统的设计+VUE

系统包含&#xff1a;源码论文 所用技术&#xff1a;SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习&#xff0c;获取源码请私聊我 需要定制请私聊 目 录 摘要 I Abstract II 1绪论 1 1.1研究背景与意义 1 1.1.1研究背景 1 1.1.2研究意义 1 1.2国内外研究…

【AGC005D】~K Perm Counting(计数抽象成图)

容斥原理。 求出f(m) &#xff0c;f(m)指代至少有m个位置不合法的方案数。 怎么求&#xff1f; 注意到位置为id&#xff0c;权值为v ,不合法的情况&#xff0c;当且仅当 v idk或 v id-k 因此&#xff0c;我们把每一个位置和权值抽象成点 &#xff0c;不合法的情况之间连一…

Docker容器简介及部署方法

1.1 Docker简介 Docker之父Solomon Hykes&#xff1a;Docker就好比传统的货运集装箱 2008 年LXC(LinuX Contiainer)发布&#xff0c;但是没有行业标准&#xff0c;兼容性非常差 docker2013年首次发布&#xff0c;由Docker, Inc开发 1.1.1什么是Docker Docker是管理容器的引…

C/C++复习(三)

一.C基础复习 命名空间&#xff1a; 对于命名空间的使用&#xff0c;相信大家都是非常熟悉的了&#xff0c;现在我们就简单回忆下即可&#xff01; 首先&#xff0c;为什么要有它呢&#xff1f;原因在于如果如何变量、函数名都直接放在全局中&#xff0c;在大型项目中非常容易和…

数据结构-LRU缓存(C语言实现)

遇到困难&#xff0c;不必慌张&#xff0c;正是成长的时候&#xff0c;耐心一点&#xff01; 目录 前言一、题目介绍二、实现过程2.1 实现原理2.2 实现思路2.2.1 双向链表2.2.2 散列表 2.3 代码实现2.3.1 结构定义2.3.2 双向链表操作实现2.3.3 实现散列表的操作2.3.4 内存释放代…

Java后端面试----某团一面

美团一面 1.介绍一下你的第一个项目 这个就不多说了&#xff0c;主要是根据自己的简历上面的项目进行一个简短的概括使用的技术栈和什么背景解决了什么问题等等。 2.线程安全的类有哪些&#xff0c;平时有使用过哪些&#xff0c;主要解决什么问题 在Java中线程安全的类比如…

vue使用table实现动态数据报表(行合并)

<template><div class"previewTable"><h2>***项目研发数据报告</h2><table id"previewTable" width"100%"><tr><th>项目名称</th><td colspan"6">{{ resultData.proName }}<…

【D3.js in Action 3 精译_030】3.5 给 D3 条形图加注图表标签(下):Krisztina Szűcs 人物专访 + 3.6 本章小结

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第一部分 D3.js 基础知识 第一章 D3.js 简介&#xff08;已完结&#xff09; 1.1 何为 D3.js&#xff1f;1.2 D3 生态系统——入门须知1.3 数据可视化最佳实践&#xff08;上&#xff09;1.3 数据可…

一键将表格嵌入ppt作为附件!2个做ppt必知的技巧分享!

怎样把表格作为附件放入ppt&#xff1f; 众所周知&#xff0c;微软推出的Office套件包含了Powerpoint和Excel这两款软件&#xff0c;如果想在Powerpoint中插入表格&#xff0c;且表格数据量比较大&#xff0c;此时最好的呈现方式&#xff0c;是在Excel中来展示这些数据&#x…

使用Spring Security+jwt+redis实现登录注册逻辑

Spring Security Spring Security 是一个提供身份验证、授权和防御常见攻击的框架。它为保护命令式和响应式应用程序提供了一流的支持&#xff0c;是保护基于 Spring 的应用程序的事实标准。 这篇博客主要是记录自己第一次使用springSecurity实现登录逻辑的过程。 使用Spring…

【Unity学习笔记】解决疑似升级Win11或使用Unity6导致Unity旧版本无法打开的问题

【Unity学习笔记】解决疑似升级Win11或使用Unity6导致Unity旧版本无法打开的问题 一句话省流&#xff1a; 确保项目地址没有任何中文&#xff0c;重新申请个许可证&#xff0c;然后该咋就咋&#xff0c;完事。 ——————————————————————————————…

滚雪球学Redis[2.2讲]:列表(List)

全文目录&#xff1a; 前言列表类型的使用场景典型使用场景示例 常用命令1. LPUSH&#xff1a;在列表左侧插入元素2. RPUSH&#xff1a;在列表右侧插入元素3. LPOP&#xff1a;从列表左侧弹出元素4. RPOP&#xff1a;从列表右侧弹出元素5. LLEN&#xff1a;获取列表的长度6. LR…

华为云应用侧Android测试APP

05.华为云应用侧Android测试APP 本APP在填写或修改部分参数后能够完成token获取&#xff0c;影子消息读取&#xff0c;命令下发。APP共包含三个界面&#xff1a;主界面获取token、影子消息获取界面、命令下发界面。 实现过程参见&#xff1a;华为云应用侧Android Studio开发-…

SQLITE 构建多表查询

在SQLite中,构建多表查询时,最常用的方式是使用 JOIN 操作符来连接多个表。下面是一些常见的查询方式及其示例: INNER JOIN INNER JOIN 是最常见的联接方式,它返回在两个表中都匹配的记录。```sql sql 复制代码 SELECT 表1.列名, 表2.列名 FROM 表1 INNER JOIN 表2 ON 表1.…

企业如何制定适合自己的专利布局策略

在竞争激烈的市场环境中&#xff0c;专利布局对于企业的发展和竞争优势的建立至关重要。以下将分要点解析企业如何制定适合自己的专利布局策略。 1、明确企业的发展战略和市场定位 企业首先需要深入了解自身的长期发展规划和短期业务目标。明确是要通过技术创新来开拓新市场&am…

微服务之间的相互调用的几种常见实现方式对比

目录 微服务之间的相互调用的几种实现方式 一、HTTP HTTP/RESTful API调用工作原理 二、RPC 设计理念与实现方式 协议与传输层 RPC远程调用工作原理 应用场景与性能考量 特点 三、Feign 设计理念与实现方式 协议与传输层 Feign调用的基本流程 Feign调用的工作原理…