回答編集履歴
2
追記
answer
CHANGED
@@ -21,4 +21,31 @@
|
|
21
21
|
> ```
|
22
22
|
|
23
23
|
Eexクラスにメソッドequalsを用意してあげましょう。
|
24
|
-
[Google - Java equals オーバーライド](https://www.google.co.jp/search?q=Java+equals+%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%83%A9%E3%82%A4%E3%83%89&oq=Java+equals+%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%83%A9%E3%82%A4%E3%83%89)
|
24
|
+
[Google - Java equals オーバーライド](https://www.google.co.jp/search?q=Java+equals+%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%83%A9%E3%82%A4%E3%83%89&oq=Java+equals+%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%83%A9%E3%82%A4%E3%83%89)
|
25
|
+
|
26
|
+
質問追記を受けて
|
27
|
+
---
|
28
|
+
まず、equalsの実装から。
|
29
|
+
プリミティブ型はnull値を持つことは無いので、単に各要素を比較すれば良いです。
|
30
|
+
```Java
|
31
|
+
class Eex {
|
32
|
+
...
|
33
|
+
@Override
|
34
|
+
public boolean equals(Object obj) {
|
35
|
+
if (this == obj)return true;
|
36
|
+
if (obj == null)return false;
|
37
|
+
if (!(obj instanceof Eex))return false;
|
38
|
+
Eex other = (Eex) obj;
|
39
|
+
|
40
|
+
return this.A == other.A && this.B == other.B;
|
41
|
+
}
|
42
|
+
}
|
43
|
+
```
|
44
|
+
|
45
|
+
また、Java7で追加された[Objects.hash](https://docs.oracle.com/javase/jp/10/docs/api/java/util/Objects.html#hash(java.lang.Object...))を用いればhashCodeもシンプルに実装できます。
|
46
|
+
```Java
|
47
|
+
@Override
|
48
|
+
public int hashCode() {
|
49
|
+
return Objects.hash(A, B);
|
50
|
+
}
|
51
|
+
```
|
1
追記
answer
CHANGED
@@ -10,4 +10,15 @@
|
|
10
10
|
|
11
11
|
---
|
12
12
|
> ```Java
|
13
|
-
|
13
|
+
class Eex {
|
14
|
+
public int A;
|
15
|
+
public int B;
|
16
|
+
public Eex(int a, int b){
|
17
|
+
A = a;
|
18
|
+
B = b;
|
19
|
+
}
|
20
|
+
}
|
21
|
+
> ```
|
22
|
+
|
23
|
+
Eexクラスにメソッドequalsを用意してあげましょう。
|
24
|
+
[Google - Java equals オーバーライド](https://www.google.co.jp/search?q=Java+equals+%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%83%A9%E3%82%A4%E3%83%89&oq=Java+equals+%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%83%A9%E3%82%A4%E3%83%89)
|