質問するログイン新規登録

回答編集履歴

2

追記

2018/11/03 15:16

投稿

LouiS0616
LouiS0616

スコア35678

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

追記

2018/11/03 15:16

投稿

LouiS0616
LouiS0616

スコア35678

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)