回答編集履歴
2
追記
test
CHANGED
@@ -45,3 +45,57 @@
|
|
45
45
|
Eexクラスにメソッドequalsを用意してあげましょう。
|
46
46
|
|
47
47
|
[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)
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
質問追記を受けて
|
52
|
+
|
53
|
+
---
|
54
|
+
|
55
|
+
まず、equalsの実装から。
|
56
|
+
|
57
|
+
プリミティブ型はnull値を持つことは無いので、単に各要素を比較すれば良いです。
|
58
|
+
|
59
|
+
```Java
|
60
|
+
|
61
|
+
class Eex {
|
62
|
+
|
63
|
+
...
|
64
|
+
|
65
|
+
@Override
|
66
|
+
|
67
|
+
public boolean equals(Object obj) {
|
68
|
+
|
69
|
+
if (this == obj)return true;
|
70
|
+
|
71
|
+
if (obj == null)return false;
|
72
|
+
|
73
|
+
if (!(obj instanceof Eex))return false;
|
74
|
+
|
75
|
+
Eex other = (Eex) obj;
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
return this.A == other.A && this.B == other.B;
|
80
|
+
|
81
|
+
}
|
82
|
+
|
83
|
+
}
|
84
|
+
|
85
|
+
```
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
また、Java7で追加された[Objects.hash](https://docs.oracle.com/javase/jp/10/docs/api/java/util/Objects.html#hash(java.lang.Object...))を用いればhashCodeもシンプルに実装できます。
|
90
|
+
|
91
|
+
```Java
|
92
|
+
|
93
|
+
@Override
|
94
|
+
|
95
|
+
public int hashCode() {
|
96
|
+
|
97
|
+
return Objects.hash(A, B);
|
98
|
+
|
99
|
+
}
|
100
|
+
|
101
|
+
```
|
1
追記
test
CHANGED
@@ -22,4 +22,26 @@
|
|
22
22
|
|
23
23
|
> ```Java
|
24
24
|
|
25
|
+
class Eex {
|
26
|
+
|
27
|
+
public int A;
|
28
|
+
|
29
|
+
public int B;
|
30
|
+
|
31
|
+
public Eex(int a, int b){
|
32
|
+
|
33
|
+
A = a;
|
34
|
+
|
35
|
+
B = b;
|
36
|
+
|
37
|
+
}
|
38
|
+
|
39
|
+
}
|
40
|
+
|
25
41
|
> ```
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
Eexクラスにメソッドequalsを用意してあげましょう。
|
46
|
+
|
47
|
+
[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)
|