使用TreeSet对象去重排序
java对象除了采用equals和hashCode判断对象是否相等外,开发人员也可以通过其他属性判断两个对象是否相等
以下案例采用TreeSet去掉重复对象
Teacher:
public class Teacher{
private String name;
private Integer age;
public Teacher(String name, Integer age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
TreeSetTest:
public class TreeSetTest{
public static void main(String[] args) {
TreeSet<Teacher> set=new TreeSet<Teacher>(new Comparator<Teacher>() {
@Override //通过姓名和年龄判断对象是否相等
public int compare(Teacher o1, Teacher o2) {
if(o1.getAge()>o2.getAge()){
return 1;
}else if(o1.getAge()<o2.getAge()){
return -1;
}else{
if(o1.getName().compareTo(o2.getName())>0){
return 1;
}else if(o1.getName().compareTo(o2.getName())==0){
return 0;
}else{
return -1;
}
}
};
});
Teacher p1=new Teacher("小学",20);
Teacher p2=new Teacher("初中",20);
Teacher p3=new Teacher("高中",20);
Teacher p4=new Teacher("初中",20);
set.add(p1);
set.add(p2);
set.add(p3);
set.add(p4);
Iterator<Teacher> iterator = set.iterator();
while(iterator.hasNext()){
Teacher teacher = iterator.next();
System.out.print(teacher.getName()+" ");
}
}
}
结果输出:
初中 小学 高中
使用TreeSet对象去重排序的更多相关文章
- TreeSet与TreeMap排序
1.TreeSet原理: /* * TreeSet存储对象的时候, 可以排序, 但是需要指定排序的算法 * * Integer能排序(有默认顺序), String能排序(有默认顺序), 自定义的类存 ...
- 数组去重----es6&es5&数组对象去重
es6方法: 普通数组: 1.使用Array.from(new Set(arr)); /* * @param oldArr 带有重复项的旧数组 * @param newArr 去除重复项之后的新数组 ...
- TreeSet类的排序
TreeSet支持两种排序方法:自然排序和定制排序.TreeSet默认采用自然排序. 1.自然排序 TreeSet会调用集合元素的compareTo(Object obj)方法来比较元素之间大小关系, ...
- 什么是泛型?,Set集合,TreeSet集合自然排序和比较器排序,数据结构-二叉树,数据结构-平衡二叉树
==知识点== 1.泛型 2.Set集合 3.TreeSet 4.数据结构-二叉树 5.数据结构-平衡二叉树 ==用到的单词== 1.element[ˈelɪmənt] 要素 元素(软) 2.key[ ...
- 分享一种容易理解的js去重排序方法
<script> var arr=[1,8,6,4,88,22,99,4,6,86,5,58,89,5]; //先使用sort()函数去重 var a=arr.sort(function ...
- json对象数组按对象属性排序
var array = [ {name: 'a', phone: 1, value: 'val_4'}, {name: 'b', phone: 5, value: 'val_3'}, {name: ' ...
- linux下批量修改存有超大数据量IP文件中的IP内容以及去重排序
作为一个linux的学徒,分享一下自己解决这个小问题的心得,在处理这个问题时使用了一个小技巧感觉很适用,个人发觉linux的终端真滴是非常强大,下面就详细地介绍这个问题以及解决办法吧 问题描述:由于要 ...
- iOS探索:对NSArray中自定义的对象进行排序
http://mobile.51cto.com/hot-434804.htm 我们开发的每个程序都会使用到一些数据,而这些数据一般被封装在一个自定义的类中.例如一个音乐程序可能会有一个Song类,聊天 ...
- Java基础知识强化之集合框架笔记69:Collections类之ArrayList存储自自定义对象并排序的案例
1. ArrayList存储自自定义对象并排序的案例: ArrayList存储自自定义对象,并使用Collections对ArrayList存储基本包装类的元素排序. 2. 代码实现: (1)Stud ...
随机推荐
- qt02 textEdit
1.向QTextEdit中当前光标位置添加一行字符串message ui.messageTextEdit->textCursor().insertText(message+"\n&qu ...
- eclipse多个项目提交到同一个仓库(码云)
参考博客:Eclipse提交多个项目到同一个仓库 https://blog.csdn.net/qq_30764991/article/details/80379365 步骤一:码云建立个远程仓库 步骤 ...
- java 分页对象以及数据库分页查询
import java.util.List; public class Pager<T> { private Integer pageSize; private Integer total ...
- linux 上配置swoole
1.首先我们要安装swoole扩展的话,需要把它的包下载下来,下载地址是: https://github.com/swoole/swoole-src 本人qq群也有许多的技术文档,希望可以为你提供一些 ...
- 计算两个GPS坐标的距离
场景:已知两个GPS点的经纬度坐标信息.计算两点的距离. 1. 距离/纬度关系 GPS: 22.514519,113.380301 GPS: 22.511962,113.380301 距离: 284. ...
- java基础拓展
1. 作用域:public private protected 默认的区别 public:在同一项目中,被public修饰的在任何地方都可以被调用 private:被private修饰的,只能在本类中 ...
- 接口返回[object,Object]解决方法
1.我们请求接口时有时会返回[object,Object],[object,Object],[object,Object].... 这个我们使用JSON.stringfity(data),就可以解决.
- HDU 6230 Palindrome ( Manacher && 树状数组)
题意 : 给定一个字符串S,问你有多少长度为 n 的子串满足 S[i]=S[2n−i]=S[2n+i−2] (1≤i≤n) 参考自 ==> 博客 分析 : 可以看出满足题目要求的特殊回文子串其 ...
- 为什么阿里巴巴要禁用Executors创建线程池?
作者:何甜甜在吗 juejin.im/post/5dc41c165188257bad4d9e69 看阿里巴巴开发手册并发编程这块有一条:线程池不允许使用Executors去创建,而是通过ThreadP ...
- 在XenCenter6.2中构建CentOS7虚拟机的启动错误
在XenCenter6.2中创建CentOS7虚拟机时,发现系统并没有提供CentOS7 64bit的模板,只有CentOS6 64bit模板.如果采用CentOS6作为其模板来创建CentOS7虚拟 ...