美文网首页
java 比较两个对象是否相等

java 比较两个对象是否相等

作者: 请叫我的全名cv工程师 | 来源:发表于2020-03-08 16:53 被阅读0次

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

  • 重新实现hashcode()方法和equals()方法
    两个相等对象的equals方法一定为true, 但两个hashcode相等的对象不一定是相等的对象。
    在equals ()方法中比较指定的字段
  • 使用 org.apache.commons的工具类重写重新实现hashcode()方法和equals()方法
    xxx部分是将指定的字段不用比较
 @Override
    public boolean equals(Object obj) {
        return EqualsBuilder.reflectionEquals(this, obj,"xxxx");
    }

    @Override
    public int hashCode() {
        return HashCodeBuilder.reflectionHashCode(this,,"xxxx");
    }
  • 实现Comparable<T>接口中的compareTo()方法
    返回值为 1,0.-1:
 @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;
    }
  • 实现Comparator<T>接口
    java 1.8之前
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() );

相关文章

  • Java中==和equals的区别,equals和hashCod

    在java中: ==是运算符,用于比较两个变量是否相等。 equals,是Objec类的方法,用于比较两个对象是否...

  • Objective-C 判断对象是否相等

    对象是否相等 直接比较两个对象是否相等,实际上比较的是两个对象的指针是否相等。上述代码中str1和str2是分别指...

  • java中==和equals和hashCode的区别

    “==”: ==是运算符,用来 比较两个值是否相等(基本数据类型)、比较两个对象的内存地址是否相等(对象); “...

  • Java基础(1)

    java中==和equals和hashCode的区别 ==:运算符,比较变量是否相等,或者两个对象的地址值是否相同...

  • == , equals,hashCode

    在java中: == 是运算符,用于比较两个变量是否相等。 equals 是Objec类的方法,用于比较两个对象是...

  • java 比较两个对象是否相等

    java 中比较两个bean对象是否相同,可以有以下几种方法 重新实现hashcode()方法和equals()方...

  • java 基础知识(三)

    1.java中常用的类 1)object 类:java的祖先类 equals():用来比较两个对象的引用是否相等,...

  • Java中判断两个对象相等,重写equals()方法和hashC

    基本概念 要比较两个对象是否相等时需要调用对象的equals() 方法:判断对象引用所指向的对象地址是否相等 对象...

  • is和==的区别

    is 是比较两个引用是否指向了同一个对象(引用比较)。 == 是比较两个对象是否相等。

  • 详解Java中的对象克隆

    前言 在 Java 语言中,我们说两个对象是否相等通常有两层含义: 对象的内容是否相等,通常使用到对象的 equa...

网友评论

      本文标题:java 比较两个对象是否相等

      本文链接:https://www.haomeiwen.com/subject/dpycxhtx.html