回答編集履歴

2

追記

2018/11/03 15:16

投稿

LouiS0616
LouiS0616

スコア35660

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

追記

2018/11/03 15:16

投稿

LouiS0616
LouiS0616

スコア35660

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)