treeSet中对象的比较
TreeSet要实现对象的排序,该对象要实现Comparable 接口compareTO方法
public class Book implements Comparable {
public int id;
public String name;
public double price;
public String press;
@Override
public int compareTo(Object o) {
Book book=(Book)o;
int val=this.id-book.id; 先通过id比较 id是数字可以直接做差
if(val==0) { 如果id相同然后比较名字
val=this.name.compareTo(book.name);
}
return val;
}
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 double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getPress() {
return press;
}
public void setPress(String press) {
this.press = press;
}
public Book(int id, String name, double price, String press) {
super();
this.id = id;
this.name = name;
this.price = price;
this.press = press;
}
@Override
public String toString() {
return "Book [id=" + id + ", name=" + name + ", price=" + price + ", press=" + press + "]";
}
public Book() {
super();
// TODO Auto-generated constructor stub
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + id;
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result + ((press == null) ? 0 : press.hashCode());
long temp;
temp = Double.doubleToLongBits(price);
result = prime * result + (int) (temp ^ (temp >>> 32));
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Book other = (Book) obj;
if (id != other.id)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (press == null) {
if (other.press != null)
return false;
} else if (!press.equals(other.press))
return false;
if (Double.doubleToLongBits(price) != Double.doubleToLongBits(other.price))
return false;
return true;
}
public void setBook(Book book) {
this.book=book;
}
public int getBook() {
// TODO Auto-generated method stub
return 0;
}
转载于:https://www.cnblogs.com/FuckJava/p/9075356.html
treeSet中对象的比较相关推荐
- Java实现二树杈_HashSet的hashCode方法和equals方法的重写,TreeSet中compareTo方法的重写,Comparator在treeSet中的应用。...
HashSet的hashCode方法和equals方法的重写,TreeSet中compareTo方法的重写,Comparator在treeSet中的应用. HashSet: 首先,hashset底层是 ...
- java集合——树集(TreeSet)+对象的比较
[0]README 0.1) 本文描述转自 core java volume 1, 源代码为原创,旨在理解 java集合--树集(TreeSet)+对象的比较 的相关知识: 0.2) for full ...
- 根据数组中对象的属性值排序倒叙
数组中对象的属性值排序倒叙demo function compare(e) {return function (a, b) {var value1 = a[e];var value2 = b[e];r ...
- 我翻译的一篇文章,OO设计中对象的创建和使用
OO设计中对象的创建和使用 转载于:https://www.cnblogs.com/lishu1980/archive/2006/06/22/432526.html
- java treeset 删除_删除Java TreeSet中的最高元素
要删除最高元素,请使用pollLast()方法. 创建一个TreeSet并向其中添加元素-TreeSet tSet = new TreeSet(); tSet.add("78"); ...
- android 集合 内存泄漏,Android内存泄漏第二课--------(集合中对象没清理造成的内存泄漏 )...
一.我们通常把一些对象的引用加入到了集合容器(比如ArrayList)中,当我们不需要该对象时,并没有把它的引用从集合中清理掉,这样这个集合就会越来越大.如果这个集合是static的话,那情况就更严重 ...
- js中给数组中对象去重
被问到如何给数组中对象去重,想到set答案肯定错误的,这个平时工作中用到的不多,查阅资料,找到给数组中对象去重的方法,利用对象属性名的唯一性,怪自己当时没想到. 方法一: let ary=[{id: ...
- 解决vue中对象属性改变视图不更新的问题
解决vue中对象属性改变视图不更新的问题 参考文章: (1)解决vue中对象属性改变视图不更新的问题 (2)https://www.cnblogs.com/buxiugangzi/p/12050165 ...
- freemarker获取封装类中对象的属性(六)
freemarker获取封装类中对象的属性 假如你现在还在为自己的技术担忧,假如你现在想提升自己的工资,假如你想在职场上获得更多的话语权,假如你想顺利的度过35岁这个魔咒,假如你想体验BAT的工作环境 ...
最新文章
- redisTemplate分布式锁演变、redission分布式锁实现!
- 惊了!计算机视觉还可以这么玩?
- WebIDE discovery when destination is selected from dropdown list
- 原生类型的autoboxing和auto-unboxing
- linux和GNU之间的关系
- java applet html_将图像从Java Applet传递到HTML
- AI技术人才成长路线十大方向
- backbonejs中的集合篇(一)
- 其它 博客园 自己写的文章 标题含有小写字母 查看文章时 标题就变成大写的了...
- Android input keyevent命令
- linux锐捷代码_Linux平台锐捷认证客户端联网方法
- 前端三大框架有哪些异同?
- 个人商业画布分析-0408-v1.0王玉娟
- css+div透明参数设置
- 笔记本电脑插入HDMI外接显示器没有声音问题
- 关于Android studio Translation插件提示“更新 TKK 失败,请检查网络连接”问题
- 深度学习如何参加阿里的天池比赛和进入天池实验室
- 【力扣时间】【807】【中等】保持城市天际线
- centos7 设置外部访问
- 观点丨DALL-E 2、AI研究的未来以及OpenAI的商业前景