Java中hascode物件的值都不一樣???

  • 作者:由 匿名使用者 發表于 攝影
  • 2022-08-14

Java中hascode物件的值都不一樣???融通四海2017.04.02 回答

是不是 想比較兩個物件是否相等 要是這個樣子,可以從寫hashCode方法。他就會根據你寫的方法 來判斷是否兩個物件相等。hashCode都是系統自動生成的,所以 每個物件的hashCode都不一樣 。

Java中hascode物件的值都不一樣???匿名使用者2017.03.31 回答

Java裡int 值是有窮的,但物件的例項是無窮的,出現相等是必然的

Java中hascode物件的值都不一樣???匿名使用者2017.03.31 回答

問題不明確。

不同的物件,它們的hashcode應該是不同的

Java中hascode物件的值都不一樣???匿名2017.03.31 回答

當比較2個例項變數是否是同一個物件時候,會先用equals比較是否相等,如果相等,再比較hashcode是否一致,如果一致就是同一個物件,如果不一致就是不同物件。

示例:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

public class student { //定義一個類

@override

public int hashcode() {//重寫hashcode,都返回1

return 1;

}

@override

public boolean equals(object obj) { //重寫equals,返回true

return true;

}

}

student stu1 = new student();

student stu2 = new student();

則這兩個物件放入hashmap的時候是同一個物件,只能新增一個。

如果把上面equals方法改成返回false

@override

public boolean equals(object obj) { //重寫equals,返回false

return false;

}

則上面兩個物件放入hashmap的時候是不同物件,新增的是2個。

Top