Java中的equals()
經過幾天的學習,終於對equals的用法有了比較全面的認識,並做一個總結。
1.equals的本意-即在Object物件中定義的equals()方法有什麼樣的意義。
(此處先附上==的作用,後面仍有敘述。因為==和equals()方法的關係是很密切的,後面有我自己的看法。
==用於比較引用和比較基本資料型別時有不同的功能:
比較基本資料型別,若兩個值相同,結果為true
而在比較引用時,若引用指向記憶體中的相同對象,結果為true)
boolean equals(Object obj)
其比較規則為:當參數obj引用的物件與目前物件為同一物件時,就回傳true,否則回傳false.
public class Fish {
color;
this.color = color;
getWeight() { return weight;
}
public void setWeight(int weight) {
}
public void setColor(String color) {
this.color = color;
public class EqualsTest {
public static void main(String[] args) {
System.out.println(f1.equals(f2));
System.out.println(f1.equals(f2)); System。 —
false
false
由此可見,equals()方法的本意為確定兩個物件的參考是否相同。
2.而JDK類別中有一些類別覆寫了oject類別的equals()方法,比較規則為:如果兩個物件的型別一致,且內容一致,則傳回true,這些類別有:
java.io. file,java.util.Date,java.lang.string,包裝類別(Integer,Double等)
public class EqualsTest {
);
String s2=new String("sss");
System.out.println(s1==s2);
}
— ———————運行結果為——————
true
由此知道,在String中equals()方法被進行了覆蓋,使其意義變為比較兩個對象的內容是否一致
3.如果我們要自己覆蓋equals()方法,讓其比較內容或者有別的使用方法(當然我們一般都是用於比較內容的,但是覆蓋的方法中真正的實現究竟是什麼樣的,誰知道O(∩_∩)O~)
public class Fish {
private int weight;
private String color;
public Fish(int Weight, String color) {
this.color = color;
public int hashCode() {
Final int prime = 31;
整數結果 = 1 ;
結果= prime * 結果+ ((color == null) ? 0 : color.hashCode());
@Override
public boolean equals(Object obj){
If(this == obj)
回傳true;
如果(obj == null)
回傳false;
If(getClass()!=obj.getClass())
回傳false;
魚類其他 = ( Fish) obj;
if (color == null) {
return false;
} else if (!color.equals(other.color))
回傳 false ;
如果(重量!= other.weight)
return false;
return Weight;
}
public void setWeight(int Weight) {
this.weight =體重;
}
public String getColor() {
return color;
}
}
public class EqualsTest {
公共靜態無效主(String[] args ) {
Fish f2 = new Fish(1, "blue"); ) ;
System.out .println(f1.equals(f2));
}
——————運行結果為——————
equals()方法和hashcode()方法,實作equals()方法刪除的本意,以下不是比較兩個物件的引用是否相同,而是比較其內容是否相同。我自己想到的一些東西。基本的侵犯而==是基本運算符中的一個,它的作用:用於比較引用和比較基本資料類型時具有不同的功能:
比較基本資料類型,如果兩個值相同,則結果為true而在比較引用時,如果引用指向內存中的相同對象,結果為true
而equals()方法可以,我們推測知道,作為其中的實現所使用的肯定是==推斷。 ()本意不等於==進行物件比較時候的作用嗎。它限制了我們的表達方式。
更多Java中的equals()文章相關請關注PHP中文網!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

公司安全軟件導致部分應用無法正常運行的排查與解決方法許多公司為了保障內部網絡安全,會部署安全軟件。 ...

將姓名轉換為數字以實現排序的解決方案在許多應用場景中,用戶可能需要在群組中進行排序,尤其是在一個用...

系統對接中的字段映射處理在進行系統對接時,常常會遇到一個棘手的問題:如何將A系統的接口字段有效地映�...

在使用IntelliJIDEAUltimate版本啟動Spring...

在使用MyBatis-Plus或其他ORM框架進行數據庫操作時,經常需要根據實體類的屬性名構造查詢條件。如果每次都手動...

Java對象與數組的轉換:深入探討強制類型轉換的風險與正確方法很多Java初學者會遇到將一個對象轉換成數組的�...

電商平台SKU和SPU表設計詳解本文將探討電商平台中SKU和SPU的數據庫設計問題,特別是如何處理用戶自定義銷售屬...

Redis緩存方案如何實現產品排行榜列表的需求?在開發過程中,我們常常需要處理排行榜的需求,例如展示一個�...
