Repository navigation
Expand file tree
/
Copy pathSolution.java
More file actions
98 lines (76 loc) · 3.21 KB
/
Copy pathSolution.java
File metadata and controls
98 lines (76 loc) · 3.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
//Salute Ampliatus, most beloved to me in the Lord. (Romans 16:8)
package com.javarush.task.task21.task2105;
import java.util.HashSet;
import java.util.Set;
/*
Исправить ошибку. Сравнение объектов
*/
public class Solution {
private final String first, last;
public Solution(String first, String last) {
this.first = first;
this.last = last;
}
@Override
public boolean equals(Object o)
{
if (o == null)
return false;
if (!(o instanceof Solution)){
return false;
}
if (this == o) return true;
Solution solution = (Solution) o;
if (first != null ? !first.equals(solution.first) : solution.first != null) return false;
if (last != null ? !last.equals(solution.last) : solution.last != null) return false;
return true;
}
@Override
public int hashCode()
{
int result = first != null ? first.hashCode() : 0;
result = 31 * result + (last != null ? last.hashCode() : 0);
return result;
}
public static void main(String[] args) {
Set<Solution> s = new HashSet<>();
s.add(new Solution("Mickey", "Mouse"));
System.out.println(s.contains(new Solution("Mickey", "Mouse")));
}
}
/*
Исправить ошибку. Сравнение объектов
Сравнение объектов Solution не работает должным образом. Найти ошибку и исправить.
Метод main не участвует в тестировании.
Требования:
1. Хешкоды одинаковых объектов должны быть равны.
2. Метод equals должен проверять равен ли переданный объект равен текущему(сравнение через ==).
3. Метод equals должен проверять является ли переданный объект объектом класса Solution.
4. Метод equals должен возвращать true в случае, если поля first и last равны у переданного объекта и текущего(не забудь что они могут быть равны null).
5. Должно быть обеспечено корректное поведение HashSet с типом элементов Solution.
6. В классе Solution должен быть реализован метод hashCode.
package com.javarush.task.task21.task2105;
import java.util.HashSet;
import java.util.Set;
*
Исправить ошибку. Сравнение объектов
*
public class Solution {
private final String first, last;
public Solution(String first, String last) {
this.first = first;
this.last = last;
}
public boolean equals(Object o) {
if (!(o instanceof Solution))
return false;
Solution n = (Solution) o;
return n.first.equals(first) && n.last.equals(last);
}
public static void main(String[] args) {
Set<Solution> s = new HashSet<>();
s.add(new Solution("Mickey", "Mouse"));
System.out.println(s.contains(new Solution("Mickey", "Mouse")));
}
}
*/