在项目开发中,经常回用到容器排序,而它们的写法比较固定,今天就来总结一下.
pojo类如下:
package com.ldh; public class Student implements Comparable<Student> { private int id; private String name; private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public int compareTo(Student o) { return new Integer(age).compareTo(new Integer(o.getAge())); } }
再创建四个Student对象:
Student st1 = new Student(); st1.setName("zhangsan1"); st1.setId(1); st1.setAge(30); Student st2 = new Student(); st2.setName("zhangsan2"); st2.setId(2); st2.setAge(20); Student st3 = new Student(); st3.setName("zhangsan3"); st3.setId(3); st3.setAge(10); Student st4 = new Student(); st4.setName("zhangsan4"); st4.setId(4); st4.setAge(10);用TreeSet对上述四个Student对象排序并打印出结果:
Set<Student> set = new TreeSet<Student>(); set.add(st1); set.add(st2); set.add(st3); set.add(st4); for(Student st : set){ System.out.println(st.getAge()); } System.out.println(set.size());
打印出的结果如下:
10
20
30
3
TreeSet底层排序算法是二叉树,如果两个元素比较的结果为0,就被视为同一个元素.如果 Student没有实现Comparable接口,也可以通过以下方式实现排序:
Set<Student> set = new TreeSet<Student>(new Comparator<Student>() { @Override public int compare(Student o1, Student o2) { return new Integer(o1.getAge()).compareTo(new Integer(o2.getAge()) ); } });最终打印出的结果和实现Comparable接口一样.TreeSet的底层实现结构是TreeMap,TreeSet就是value都相同的TreeMap,因此TreeMap也有上述两种排序方式.
相关推荐
密钥是一种参数,它是在明文转换为密文或将密文转换为明文的...将秘钥容器中的所有秘钥按照f(k)升序排列,以便观察秘钥的安全性。 数据结构综合应用、排序算法综合应用、算法设计 程序可在eclipse直接导入,亲测可用
对键进行排序 HashTable 标记: class Properties 标记: class 线程安全,速度慢,不允许存放null键,null值,已被HashMap替代。 Collections 标记: 均以synchronized实现, 性能没用提高 synchronizedCollection...
List、ArrayList、Vector及map、HashTable、HashMap的区别与用法 使用容器排序 Vector由于使用了synchronized方法(线程安全)
1结合GUI包在DOS窗口具有添加作者和书籍的功能。(做成GUI界面) 2具有查询一本书所有作者基本信息的功能。包括我只想查某一个属性 3具有查询一个作者所有书目的功能 ...5 具有对所有作者按客户指定类型排序的功能
编写一个Java项目,包含两个类StudentJavaScore和...StudentJavaScore用于存储学生姓名和Java成绩,并实现了Comparable接口.ScoreOperation类包含5个方法,对学生成绩进行查询、排序,并实现字符串中字符计数操作。
在对象创建的过程中将被容器调用,onMessage函数方法接收消息参数,将其强制转型为合适的消息类型,同时打印出消息的内容。同时一个mail note将被发送给消息发送者,发送一个e-mail通知给由recipient参数确定的e-...
在对象创建的过程中将被容器调用,onMessage函数方法接收消息参数,将其强制转型为合适的消息类型,同时打印出消息的内容。同时一个mail note将被发送给消息发送者,发送一个e-mail通知给由recipient参数确定的e-...
// java中对象容器主要有Set,List和Map三个接口类。 // 迭代器(Iterator)模式,又叫做游标(Cursor)模式。 // GOF给出的定义为:提供一种方法访问一个容器(container)对象中的各个元素, // 而又不需暴露该...
Java集合容器面试题(2023最新版)-重点 **集合框架:**用于存储数据的容器。 集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。 任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合...
2.安装好后进入java找到容器管理安装tomcat8安装版本 3.web项目管理添加项目,项目域名填写你的域名,项目端口为8085 4.创建后进去项目路径,上传源码并解压,创建数据库,导入数据库文件,配置数据库信息 5.后台地 ...
并发编程,并发编程各大容器,锁。框架spring mybatis原理,组件介绍。架构设计有设计模式,负载均衡。网络有协议,java 高并发io框架netty。数据结构包括堆栈,队列,链表,二叉树,红黑树,算法包括各种排序,贪心...
java数据结构 树 排序 查找 容器,还有数组之类的,全是用Java源代码写的。
利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类...
利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类...
JDK提供的这些容器⼤部分在java.util.concurrent包中。我们挑选出⼀些⽐较有代表性的并发容器 1 类,来感受⼀下JDK⾃带的并发集合带来的“快感”。 ConcurrentLinkedQueue是⼀个基于链接节点的⽆界线程安全队列,它...
利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类...
利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类...
利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类...
尚硅谷_Java8新特性_Optional 容器类 ·16. 尚硅谷_Java8新特性_接口中的默认方法与静态方法 ·17. 尚硅谷_Java8新特性_传统时间格式化的线程安全问题 ·18. 尚硅谷_Java8新特性_新时间与日期 API-本地时间与时间戳...