java 比较两个对象是否相等

2020-03-08  本文已影响0人  请叫我的全名cv工程师

java 中比较两个bean对象是否相同,可以有以下几种方法

 @Override
    public boolean equals(Object obj) {
        return EqualsBuilder.reflectionEquals(this, obj,"xxxx");
    }

    @Override
    public int hashCode() {
        return HashCodeBuilder.reflectionHashCode(this,,"xxxx");
    }
 @Override
    public int compareTo(Book o) {
          //先按 id 再按价格 最后按书名排序 升序
        int result = this.bookId - o.bookId;
        if(result == 0){
            result =this.bookPrice - o.bookPrice;
        }
        if(result == 0){
            result = this.bookName.compareTo(o.bookName);
        }        
        return result;
    }
Collections.sort(books,new Comparator<Book>() {
            @Override
            public int compare(Book o1, Book o2) {
                return o1.getBookPrice() - o2.getBookPrice();
            }
        });

java 1.8之后

  Collections.sort(books,(Book a, Book b) -> { return a.getBookPrice()-b.getBookPrice(); });
或者可以简单的写为 
  Collections.sort(books,(Book a, Book b) ->  a.getBookPrice()-b.getBookPrice());
甚至,我们可以不使用Collections.sort:
  books.sort((Book a, Book b) -> a.getBookPrice()-b.getBookPrice() );
上一篇下一篇

猜你喜欢

热点阅读