java 比較兩個(gè)對(duì)象是否相等

java 中比較兩個(gè)bean對(duì)象是否相同,可以有以下幾種方法

  • 重新實(shí)現(xiàn)hashcode()方法和equals()方法
    兩個(gè)相等對(duì)象的equals方法一定為true, 但兩個(gè)hashcode相等的對(duì)象不一定是相等的對(duì)象。
    在equals ()方法中比較指定的字段
  • 使用 org.apache.commons的工具類重寫重新實(shí)現(xiàn)hashcode()方法和equals()方法
    xxx部分是將指定的字段不用比較
 @Override
    public boolean equals(Object obj) {
        return EqualsBuilder.reflectionEquals(this, obj,"xxxx");
    }

    @Override
    public int hashCode() {
        return HashCodeBuilder.reflectionHashCode(this,,"xxxx");
    }
  • 實(shí)現(xiàn)Comparable<T>接口中的compareTo()方法
    返回值為 1,0.-1:
 @Override
    public int compareTo(Book o) {
          //先按 id 再按價(jià)格 最后按書名排序 升序
        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;
    }
  • 實(shí)現(xiàn)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(); });
或者可以簡(jiǎn)單的寫為 
  Collections.sort(books,(Book a, Book b) ->  a.getBookPrice()-b.getBookPrice());
甚至,我們可以不使用Collections.sort:
  books.sort((Book a, Book b) -> a.getBookPrice()-b.getBookPrice() );
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • java筆記第一天 == 和 equals ==比較的比較的是兩個(gè)變量的值是否相等,對(duì)于引用型變量表示的是兩個(gè)變量...
    jmychou閱讀 1,658評(píng)論 0 3
  • 文章作者:Tyan博客:noahsnail.com | CSDN | 簡(jiǎn)書 CHAPTER3 Method...
    SnailTyan閱讀 779評(píng)論 1 4
  • 四、集合框架 1:String類:字符串(重點(diǎn)) (1)多個(gè)字符組成的一個(gè)序列,叫字符串。生活中很多數(shù)據(jù)的描述都采...
    佘大將軍閱讀 879評(píng)論 0 2
  • 失眠的第九個(gè)晚上,絲毫感覺(jué)不到困,呼吸平穩(wěn),身心放松,我開(kāi)始關(guān)注生活中一些細(xì)節(jié)上的事情,嘗試有意識(shí)的節(jié)省花費(fèi)。我想...
    蘇楠雮閱讀 142評(píng)論 0 2
  • 你是誰(shuí)不重要,重要的是你愛(ài)我,我愛(ài)你。沐子看著云天的眼睛認(rèn)真的說(shuō)。我相信緣分,無(wú)論是現(xiàn)在還是將來(lái)。我是否有將來(lái)我都...
    水來(lái)木生閱讀 102評(píng)論 0 1

友情鏈接更多精彩內(nèi)容