Java TreeMap使用方法
1、使用默认的TreeMap 构造函数,其中key值需要有比较规则。
2、使用默认的TreeMap 构造函数,Key中添加自定义类型,自定义类型必须继承Comparator。
3、使用比较器类来来实现排序,自定义类型不用来继承Comparator
试例代码:
public class Demo {
public static void main(String[] args) {
//1、使用默认的TreeMap 构造函数,其中key值需要有比较规则
TreeMap<Integer, String> map =new TreeMap<>();
map.put(new Integer(2), "BB");
map.put(new Integer(1), "AA");
map.put(new Integer(5), "EE");
map.put(new Integer(3), "CC");
map.put(new Integer(4), "DD");
map.put(new Integer(2), "AA"); //验证重复key是否能够插入
//使用遍历EntrySet方式
for(Entry<Integer, String> entry:map.entrySet()){
System.out.println("Key:"+entry.getKey()+ " --- value:"+entry.getValue());
}
//2、使用默认的TreeMap 构造函数,Key中添加自定义类型,自定义类型必须继承Comparator
System.out.println("-------------------2、使用默认的TreeMap 构造函数,Key中添加自定义类型,自定义类型必须继承Comparator-----------------------");
TreeMap<person,String> mapPer=new TreeMap<>();
mapPer.put(new person("张三",22), "6K");
mapPer.put(new person("老王",35), "29K");
mapPer.put(new person("小张",31), "11K");
for(Entry<person, String> entry:mapPer.entrySet()){
System.out.println("Key:"+entry.getKey()+ " --- value:"+entry.getValue());
}
//3、使用比较器类来来实现排序,自定义类型不用来继承Comparator
System.out.println("-------------------3、使用比较器类来来实现排序,自定义类型不用来继承Comparator-----------------------");
TreeMap<Book,String> mapBook =new TreeMap<>(new BookComparator());
mapBook.put(new Book("流浪地球",60),"200页");
mapBook.put(new Book("三体",100),"400页");
mapBook.put(new Book("大秦帝国",180),"900页");
for(Entry<Book, String> entry:mapBook.entrySet()){
System.out.println("Key:"+entry.getKey()+ " --- value:"+entry.getValue());
}
} }
//自定义person类
class person implements Comparable<person> {
String name; int age;
public person(String name,int age) {
this.name=name;
this.age=age; }
@Override
public String toString() {
return "姓名:"+this.name +" 年龄:" +this.age;
}
@Override
public int compareTo(person o) {
if(o.age>this.age) {
return 1;
} else if(o.age<this.age) {
return -1;
}
return 0;
} }
//自定义book类
class Book {
String name;
double price;
public Book(String name,double price) {
this.name=name;
this.price=price; }
@Override
public String toString() {
return "书名:"+this.name+" 价格:"+this.price;
} }
//book比较器类
class BookComparator implements Comparator<Book>{
@Override
public int compare(Book o1, Book o2) {
if(o1.price>o2.price) {
return 1;
} else if(o1.price<o2.price) {
return -1;
}
return 0;
} }
Java TreeMap使用方法的更多相关文章
- Java - TreeMap源码解析 + 红黑树
Java提高篇(二七)-----TreeMap TreeMap的实现是红黑树算法的实现,所以要了解TreeMap就必须对红黑树有一定的了解,其实这篇博文的名字叫做:根据红黑树的算法来分析TreeMap ...
- java TreeMap 源代码分析 平衡二叉树
TreeMap 的实现就是红黑树数据结构,也就说是一棵自平衡的排序二叉树,这样就可以保证当需要快速检索指定节点. TreeSet 和 TreeMap 的关系 为了让大家了解 TreeMap 和 Tre ...
- Java TreeMap 和 LinkedHashMap【笔记】
Java TreeMap 和 LinkedHashMap[笔记] TreeMap TreeMap基本结构 TreeMap 底层的数据结构就是红黑树,和 HashMap 的红黑树结构一样 与HashMa ...
- oracle调用JAVA类的方法
导入jar包 在oracle中导入需要的jar包,我们把编辑好的java类打成jar包,直接在oarcle里面写简单的调用就可以了, 1.操作系统需要拥有支持loadjava命令的jdk. 2.加 ...
- Java中的方法应用
一.如何定义java中的方法 所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块. 语法: 1. 访问修饰符:方法允许被访问的权限范围, 可以是 public.protected.priv ...
- Java Runtime.availableProcessors()方法
Java Runtime.availableProcessors()方法用法实例教程. 描述 java.lang.Runtime.availableProcessors() 方法返回到Java虚拟 ...
- paip.java OutOfMemoryError 解决方法o33
paip.java OutOfMemoryError 解决方法o33 java.lang.OutOfMemoryError: Requested # java.lang.OutOfMemoryErro ...
- Java读写文件方法总结
Java读写文件方法总结 Java的读写文件方法在工作中相信有很多的用处的,本人在之前包括现在都在使用Java的读写文件方法来处理数据方面的输入输出,确实很方便.奈何我的记性实在是叫人着急,很多时候既 ...
- java调用本地方法的时候报错 could not find the main class:xx.program will exit
如图所示,当在java调用本地方法的时候报错 我的解决办法是把dll文件放到System.out.println(System.getProperty("java.library.path& ...
随机推荐
- 七牛云上传视频并截取第一帧为图片(js实现)
本文出自APICloud官方论坛, 感谢论坛版主 东冥羽的分享. 七牛云上传视频并截取第一帧作为视频的封面图. 使用js上传,模块videoPlayer截取第一帧(有专门的截图模块,但是我使用的有点问 ...
- 20191102Java课堂记录
1. import javax.swing.*; class AboutException { public static void main(String[] a) { int i=1, j=0, ...
- Java入门 - 语言基础 - 20.Stream和File和IO
原文地址:http://www.work100.net/training/java-stream-file-io.html 更多教程:光束云 - 免费课程 Stream和File和IO 序号 文内章节 ...
- CSS动效集锦,视觉魔法的碰撞与融合(三)
本文讲述的原理和相关demo 扇形DIV的使用——实现雷达扫描图 DIV环形布局—实现loading圈 动画的向量合成—实现抛物线动画 无限滚动动画—实现跑马灯效果 perspective和trans ...
- 16、python面对对象之类和继承
前言:本文主要介绍python面对对象中的类和继承,包括类方法.静态方法.只读属性.继承等. 一.类方法 1.类方法定义 使用装饰器@classmethod装饰,且第一个参数必须是当前类对象,该参数名 ...
- 机器学习环境配置系列二之cuDNN
1.下载cuDNN 前往: NVIDIA cuDNN home page. 进入下载 勾选Nvidia的协议复选框(流氓的选择,不勾选不能下载) 选择与安装的cuda版本一致的cudnn进行下载. 2 ...
- 20200104模拟赛 问题A 图样
题目 分析: 老规矩,遇到期望要准备好随时投降... 大致想到了按位处理,然后分别下去搜索,再用组合数加加减减一下... 但是两个连通块之间连边的期望怎么算呢? 很好,投降... 下来看题解... 果 ...
- Linux 常用工具openssh之ssh-agent
前言 ssh-agent命令是一种控制用来保存公钥身份验证所使用的私钥的程序.ssh-agent在X会话或登录会话之初启动,所有其他窗口或程序则以客户端程序的身份启动并加入到ssh-agent程序中. ...
- nginx之基础安装
前言 nginx的安装方式可能不同,具体取决于操作系统:对于Linux,可以使用nginx.org的nginx软件包.在FreeBSD上,可以从软件包或通过端口系统安装nginx. 端口系统提供了更大 ...
- Mysql Innodb cluster集群搭建
之前搭建过一个Mysql Ndb cluster集群,但是mysql版本是5.7的,看到官网上mysql8的还是开发者版本,所以尝试搭建下mysql Innodb cluster集群. MySQL的高 ...