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使用方法的更多相关文章

  1. Java - TreeMap源码解析 + 红黑树

    Java提高篇(二七)-----TreeMap TreeMap的实现是红黑树算法的实现,所以要了解TreeMap就必须对红黑树有一定的了解,其实这篇博文的名字叫做:根据红黑树的算法来分析TreeMap ...

  2. java TreeMap 源代码分析 平衡二叉树

    TreeMap 的实现就是红黑树数据结构,也就说是一棵自平衡的排序二叉树,这样就可以保证当需要快速检索指定节点. TreeSet 和 TreeMap 的关系 为了让大家了解 TreeMap 和 Tre ...

  3. Java TreeMap 和 LinkedHashMap【笔记】

    Java TreeMap 和 LinkedHashMap[笔记] TreeMap TreeMap基本结构 TreeMap 底层的数据结构就是红黑树,和 HashMap 的红黑树结构一样 与HashMa ...

  4. oracle调用JAVA类的方法

    导入jar包 在oracle中导入需要的jar包,我们把编辑好的java类打成jar包,直接在oarcle里面写简单的调用就可以了,  1.操作系统需要拥有支持loadjava命令的jdk.  2.加 ...

  5. Java中的方法应用

    一.如何定义java中的方法 所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块. 语法: 1. 访问修饰符:方法允许被访问的权限范围, 可以是 public.protected.priv ...

  6. Java Runtime.availableProcessors()方法

    Java Runtime.availableProcessors()方法用法实例教程.   描述 java.lang.Runtime.availableProcessors() 方法返回到Java虚拟 ...

  7. paip.java OutOfMemoryError 解决方法o33

    paip.java OutOfMemoryError 解决方法o33 java.lang.OutOfMemoryError: Requested # java.lang.OutOfMemoryErro ...

  8. Java读写文件方法总结

    Java读写文件方法总结 Java的读写文件方法在工作中相信有很多的用处的,本人在之前包括现在都在使用Java的读写文件方法来处理数据方面的输入输出,确实很方便.奈何我的记性实在是叫人着急,很多时候既 ...

  9. java调用本地方法的时候报错 could not find the main class:xx.program will exit

    如图所示,当在java调用本地方法的时候报错 我的解决办法是把dll文件放到System.out.println(System.getProperty("java.library.path& ...

随机推荐

  1. linux下解压缩文件中文乱码问题的解决

    在windows上压缩的文件,是以系统默认编码中文来压缩文件.由于zip文件中没有声明其编码,所以linux上的unzip一般以默认编码解压,中文文件名会出现乱码. 虽然2005年就有人把这报告为bu ...

  2. C#实现EXCEL表格转DataTable

    C#代码实现把Excel文件转化为DataTable,根据Excel的文件后缀名不同,用不同的方法来进行实现,下面通过根据Excel文件的两种后缀名(*.xlsx和*.xls)分别来实现.获取文件后缀 ...

  3. JVM系列七(JIT 即时编译器).

    一.概述 即时编译器(Just In Time Compiler),也称为 JIT 编译器,它的主要工作是把热点代码编译成与本地平台相关的机器码,并进行各种层次的优化,从而提高代码执行的效率. 那么什 ...

  4. 【C_Language】---C语言const用法总结

    C语言关键字const相信对于不少C语言新手是既陌生又熟悉的,好像经常见,但是却不知道为何用,怎么用?学习至此,总结一下const的用法,使用程序来帮助你理解该关键字,希望能帮到像我一样的新手. 我看 ...

  5. FWT 入门

    #include <bits/stdc++.h> using namespace std; #define ll long long const ll maxn = 3e5+5; cons ...

  6. 修改现有消息类让.net core项目支持Protobuf - 【无需使用 [ProtoBuf.ProtoContract] 的方法】

    前言 第二次发博客,希望大家多多鼓励!!! 又接无上老板的一个需求,需要让.net core消息发送端跟消息接收端通信的消息是protobuf格式的(基于protobuf比json小一倍数据量,独特的 ...

  7. 在eclipse中用java调用python报错 Exception in thread "main" ImportError: Cannot import site module and its dependencies

    最近做项目需要用java调用python,配置了jython后,运行了例子代码: 获得一个元组里面的元素: import org.python.util.PythonInterpreter; publ ...

  8. Python Selenium定位元素常用解决办法

       在做web应用的自动化测试时,定位元素是必不可少的,这个过程经常会碰到定位不到元素的情况(报selenium.common.exceptions.NoSuchElementException), ...

  9. [集训]FWT基础练习题

    题意 给出n个长度为20的二进制数和数字k,每次询问给出一个二进制数,问从n个数中挑k个数(不能重复)的按位或能包含询问的组合有多少个.数字均小于等于5E5,1s. 思考 强行算出2^20个答案,再O ...

  10. 'NoneType' object has no attribute shape

    使用cv2读取图片时,输出图片形状大小时出现报错“ 'NoneType' object has no attribute shape”,后来排查发现读取图片的返回值image为None, 这就说明图片 ...