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中对象的比较相关推荐

  1. Java实现二树杈_HashSet的hashCode方法和equals方法的重写,TreeSet中compareTo方法的重写,Comparator在treeSet中的应用。...

    HashSet的hashCode方法和equals方法的重写,TreeSet中compareTo方法的重写,Comparator在treeSet中的应用. HashSet: 首先,hashset底层是 ...

  2. java集合——树集(TreeSet)+对象的比较

    [0]README 0.1) 本文描述转自 core java volume 1, 源代码为原创,旨在理解 java集合--树集(TreeSet)+对象的比较 的相关知识: 0.2) for full ...

  3. 根据数组中对象的属性值排序倒叙

    数组中对象的属性值排序倒叙demo function compare(e) {return function (a, b) {var value1 = a[e];var value2 = b[e];r ...

  4. 我翻译的一篇文章,OO设计中对象的创建和使用

    OO设计中对象的创建和使用 转载于:https://www.cnblogs.com/lishu1980/archive/2006/06/22/432526.html

  5. java treeset 删除_删除Java TreeSet中的最高元素

    要删除最高元素,请使用pollLast()方法. 创建一个TreeSet并向其中添加元素-TreeSet tSet = new TreeSet(); tSet.add("78"); ...

  6. android 集合 内存泄漏,Android内存泄漏第二课--------(集合中对象没清理造成的内存泄漏 )...

    一.我们通常把一些对象的引用加入到了集合容器(比如ArrayList)中,当我们不需要该对象时,并没有把它的引用从集合中清理掉,这样这个集合就会越来越大.如果这个集合是static的话,那情况就更严重 ...

  7. js中给数组中对象去重

    被问到如何给数组中对象去重,想到set答案肯定错误的,这个平时工作中用到的不多,查阅资料,找到给数组中对象去重的方法,利用对象属性名的唯一性,怪自己当时没想到. 方法一: let ary=[{id: ...

  8. 解决vue中对象属性改变视图不更新的问题

    解决vue中对象属性改变视图不更新的问题 参考文章: (1)解决vue中对象属性改变视图不更新的问题 (2)https://www.cnblogs.com/buxiugangzi/p/12050165 ...

  9. freemarker获取封装类中对象的属性(六)

    freemarker获取封装类中对象的属性 假如你现在还在为自己的技术担忧,假如你现在想提升自己的工资,假如你想在职场上获得更多的话语权,假如你想顺利的度过35岁这个魔咒,假如你想体验BAT的工作环境 ...

最新文章

  1. redisTemplate分布式锁演变、redission分布式锁实现!
  2. 惊了!计算机视觉还可以这么玩?
  3. WebIDE discovery when destination is selected from dropdown list
  4. 原生类型的autoboxing和auto-unboxing
  5. linux和GNU之间的关系
  6. java applet html_将图像从Java Applet传递到HTML
  7. AI技术人才成长路线十大方向
  8. backbonejs中的集合篇(一)
  9. 其它 博客园 自己写的文章 标题含有小写字母 查看文章时 标题就变成大写的了...
  10. Android input keyevent命令
  11. linux锐捷代码_Linux平台锐捷认证客户端联网方法
  12. 前端三大框架有哪些异同?
  13. 个人商业画布分析-0408-v1.0王玉娟
  14. css+div透明参数设置
  15. 笔记本电脑插入HDMI外接显示器没有声音问题
  16. 关于Android studio Translation插件提示“更新 TKK 失败,请检查网络连接”问题
  17. 深度学习如何参加阿里的天池比赛和进入天池实验室
  18. 【力扣时间】【807】【中等】保持城市天际线
  19. centos7 设置外部访问
  20. 观点丨DALL-E 2、AI研究的未来以及OpenAI的商业前景

热门文章

  1. 第七章 Qt对象模型与容器类
  2. VC++中实现INI文件读写的方法和示例
  3. Linux C DNS 查询IP地址
  4. matlab——使用gird函数画背景格
  5. Django多表查询练习题
  6. 【网络基础】路由表,分组转发算法
  7. 【HDOJ】【3853】LOOPS
  8. MONO,原来你是水中月
  9. 打造自己的数据访问层(三)
  10. 看到go语言简介想到的