TreeSet 有两种排序方式

1. Java.lang.Comparble+compareTo

new TreeSet()

用这种方法必须要求实体类实现Comparable接口,也就是说要求添加到TreeSet中的元素是可排序的

2. java.util.Comparator +compare

举个TreeSet栗子:

package com.etc.test;

import java.util.Comparator;

import java.util.TreeSet;

import com.etc.entity.Person;

public class TreeSetDemo {

public static void main(String[] args) {

Person p1=new Person("depp",100);

Person p2=new Person("tom",90);

Person p3=new Person("jack",50);

TreeSet ts=new TreeSet(

new Comparator() {

public int compare(Person o1,Person o2){

return o1.getHandsome()-o2.getHandsome();//升序

}

}

);

ts.add(p1);

ts.add(p2);

ts.add(p3);

System.out.println(ts);

/*

* 排序结果没有改变,是因为TreeSet在添加元素的时候进行排序,需要注意,数据更改不会影响原来的顺序

还有一点需要注意的是,TreeSet中不可以数据重复,所以一般不修改数据,为了确保这一点,我们可以在Person类为属性加上final关键字,删除setter方法

*/

p3.setHandsome(200);//改变数据,排序不会改变

System.out.println(ts);

}

}

举个TreeMap栗子:

package com.etc.test;

import java.util.Comparator;

import java.util.Set;

import java.util.TreeMap;

import java.util.TreeSet;

import com.etc.entity.Person;

public class TreeMapDemo {

public static void main(String[] args) {

Person p1=new Person("depp",100);

Person p2=new Person("tom",90);

Person p3=new Person("jack",50);

TreeMap tm=new TreeMap(new Comparator() {

public int compare(Person o1,Person o2)

{

return o1.getHandsome()-o2.getHandsome();//升序

}

});

tm.put(p1, "ttt");

tm.put(p2, "ttt");

tm.put(p3, "ttt");

System.out.println(tm);

//也可以用set进行输出 TreeMap也是在添加元素时进行排序

Set set=tm.keySet();

System.out.println(set);

}

}

java8 treemap 排序_TreeSet 和TreeMap 排序相关推荐

  1. TreeMap实现对中文的排序

    import java.util.TreeMap;/*** @author silence* TreeMap实现对中文的排序* TreeMap会根据键排序,String实现了Comparable接口实 ...

  2. java学习:容器排序:TreeMap和TreeSet实现自定义排序的使用方法?两者的区别?

    文章目录 TreeMap和TreeSet实现自定义排序的实现 1.TreeMap实现自定义排序 (1)构造函数中new Comparator,匿名内部类,重写compare 方法. (2)实体类实现C ...

  3. java 英文字符串排序_英文字符串排序算法

    编程工作偶尔会遇到一些不常见问题需要处理,学编程处理问题也难免需要熟悉一些算法 以前学习的时候就遇到过一个看似简单的排序算法问题,当时的解决办法是我没有用过的,在此记录一下'' 问题 - 英文字符串排 ...

  4. 关于自然排序Comparable 和 比较器排序Comparator

    简要区别 自然排序可用在list和set中,当用在list集合中时要通过Collections(list)对排序规则进行调用,谁是最后一个排序的就按照哪个排序规则进行排序 当用在TreeSet集合中时 ...

  5. java中treemap_Java TreeMap – Java中的TreeMap

    java中treemap Java TreeMap is one of the Map implementation and it's part of Java Collections framewo ...

  6. Java Map 键值对排序 按key排序和按Value排序

    一.理论准备 Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等. TreeMap:基于红黑树(Red-Black tre ...

  7. java算法----排序----(6)希尔排序(最小增量排序)

    1 package log; 2 3 public class Test4 { 4 5 /** 6 * java算法---希尔排序(最小增量排序) 7 * 8 * @param args 9 */ 1 ...

  8. python八大选择排序_Python实现选择排序

    选择排序: 选择排序(Selection sort)是一种简单直观的 排序算法 .它的工作原理如下.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最 ...

  9. python中使用squarify包可视化treemap图:使用treemap图可视化个人或者集体的股票、基金的持仓结构(treemap with squarify package)

    python中使用squarify包可视化treemap图:使用treemap图可视化个人或者集体的股票.基金的持仓结构(treemap with squarify package) 目录

  10. R语言使用treemap包中的treemap函数可视化treemap图:treemap将分层数据显示为一组嵌套矩形、自定义设置treemap图的调色板、自定义设置treemap标题字体的大小

    R语言使用treemap包中的treemap函数可视化treemap图:treemap将分层数据显示为一组嵌套矩形.自定义设置treemap图的调色板.自定义设置treemap标题字体的大小 目录

最新文章

  1. 可可:框架和边界之间有什么区别?
  2. Spring Cloud Feign的文件上传实现
  3. 组件命名方式||局部组件注册:局部组件只能在注册他的父组件中使用
  4. maven2学习总结(1,入门起步与实践)
  5. PHP通过OpenSSL生成证书、密钥并且加密解密数据,以及公钥,私钥和数字签名的理解...
  6. 马化腾最新演讲谈机遇:让所有企业在云端利用AI处理大数据
  7. 上行和下行是什么意思_为什么无线通信需要同步?
  8. 成为全栈工程师的6个要素
  9. Linux下ps -ef和ps aux
  10. 1986:【19CSPS提高组】格雷码
  11. 软件工程(2019)第四次作业
  12. 计算机怎么不读u盘,老司机告诉你电脑不读U盘的解决方法
  13. Kafka安装与简介
  14. 串口 COM口,并口 LPT口,RS232、RS485、CAN、PC卡 及DAQ
  15. PyQt4实时显示文本内容GUI
  16. 干货!MetaCorrection:解决无监督域适应的domain gap问题
  17. 更改tomcat端口8080为80的时候,有系统端口占用的问题
  18. [附源码]java毕业设计社区健康服务平台管理系统lunwen
  19. js 高德地图,地图上落点,并点击地图上的图片可进行切换图片
  20. L1-007 念数字 (10分) 输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字。十个数字对应的拼音如下: 0: ling 1: yi 2: er 3: san 4: si 5:

热门文章

  1. 裁剪算法——中点分割算法/Liang-Barsky算法
  2. Modbus协议简单总结
  3. 用javascript访问操作iframe中的dom对象
  4. ASN.1入门(超详细)
  5. Egg.js VS Thinkjs 简单分析使用
  6. 部署RPA如何实现投资回报率最大化?评估ROI的6大指标
  7. Eclipse中如何clean项目以及clean的作用
  8. 苹果中国官网新增蚂蚁花呗 24 期分期免息服务
  9. linux 下 packet_mmap 前篇 (抓包实现)
  10. 学习 Json解析数据