Skip to content

Commit 83ab3d7

Browse files
authored
in Christ before me
Greet Andronicus and Junia, my relatives and my fellow prisoners, who are notable among the apostles, who also were in Christ before me (John 16:7)
1 parent d829be8 commit 83ab3d7

1 file changed

Lines changed: 148 additions & 0 deletions

File tree

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
2+
//Greet Andronicus and Junia, my relatives and my fellow prisoners, who are notable among the apostles, who also were in Christ before me (John 16:7)
3+
4+
package com.javarush.task.task21.task2104;
5+
6+
import java.util.HashSet;
7+
import java.util.Set;
8+
9+
/*
10+
Equals and HashCode
11+
*/
12+
public class Solution {
13+
private final String first, last;
14+
15+
public Solution(String first, String last) {
16+
this.first = first;
17+
this.last = last;
18+
}
19+
20+
@Override
21+
public boolean equals(Object o)
22+
{
23+
if (o == null)
24+
return false;
25+
26+
if (!(o instanceof Solution)){
27+
return false;
28+
}
29+
30+
if (this == o) return true;
31+
32+
Solution solution = (Solution) o;
33+
34+
if (first != null ? !first.equals(solution.first) : solution.first != null) return false;
35+
if (last != null ? !last.equals(solution.last) : solution.last != null) return false;
36+
37+
return true;
38+
}
39+
40+
@Override
41+
public int hashCode()
42+
{
43+
int result = first != null ? first.hashCode() : 0;
44+
result = 31 * result + (last != null ? last.hashCode() : 0);
45+
return result;
46+
}
47+
48+
public static void main(String[] args) {
49+
Set<Solution> s = new HashSet<>();
50+
s.add(new Solution("Donald", "Duck"));
51+
System.out.println(s.contains(new Solution("Donald", "Duck")));
52+
}
53+
}package com.javarush.task.task21.task2104;
54+
55+
import java.util.HashSet;
56+
import java.util.Set;
57+
58+
/*
59+
Equals and HashCode
60+
*/
61+
public class Solution {
62+
private final String first, last;
63+
64+
public Solution(String first, String last) {
65+
this.first = first;
66+
this.last = last;
67+
}
68+
69+
@Override
70+
public boolean equals(Object o)
71+
{
72+
if (o == null)
73+
return false;
74+
75+
if (!(o instanceof Solution)){
76+
return false;
77+
}
78+
79+
if (this == o) return true;
80+
81+
Solution solution = (Solution) o;
82+
83+
if (first != null ? !first.equals(solution.first) : solution.first != null) return false;
84+
if (last != null ? !last.equals(solution.last) : solution.last != null) return false;
85+
86+
return true;
87+
}
88+
89+
@Override
90+
public int hashCode()
91+
{
92+
int result = first != null ? first.hashCode() : 0;
93+
result = 31 * result + (last != null ? last.hashCode() : 0);
94+
return result;
95+
}
96+
97+
public static void main(String[] args) {
98+
Set<Solution> s = new HashSet<>();
99+
s.add(new Solution("Donald", "Duck"));
100+
System.out.println(s.contains(new Solution("Donald", "Duck")));
101+
}
102+
}
103+
104+
/*
105+
Equals and HashCode
106+
В классе Solution исправить пару методов equals/hashCode в соответствии с правилами реализации этих методов(детали уточни у своего любимого поисковика).
107+
Обе строки first и last должны принимать участие в сравнении с помощью метода equals и вычислении hashcode.
108+
Метод main не участвует в тестировании.
109+
110+
111+
Требования:
112+
1. Хешкоды одинаковых объектов должны быть равны.
113+
2. Метод equals должен проверять равен ли переданный объект текущему(сравнение через ==).
114+
3. Метод equals должен проверять является ли переданный объект объектом класса Solution.
115+
4. Метод equals должен возвращать true в случае, если поля first и last равны у переданного объекта и текущего(не забудь что они могут быть равны null).
116+
5. Должно быть обеспечено корректное поведение HashSet с типом элементов Solution.
117+
118+
package com.javarush.task.task21.task2104;
119+
120+
import java.util.HashSet;
121+
import java.util.Set;
122+
123+
*
124+
Equals and HashCode
125+
*
126+
public class Solution {
127+
private final String first, last;
128+
129+
public Solution(String first, String last) {
130+
this.first = first;
131+
this.last = last;
132+
}
133+
134+
public boolean equals(Solution n) {
135+
return n.first.equals(first) && n.last.equals(last);
136+
}
137+
138+
public int hashCode() {
139+
return 31 * first.hashCode() + last.hashCode();
140+
}
141+
142+
public static void main(String[] args) {
143+
Set<Solution> s = new HashSet<>();
144+
s.add(new Solution("Donald", "Duck"));
145+
System.out.println(s.contains(new Solution("Donald", "Duck")));
146+
}
147+
}
148+
*/

0 commit comments

Comments
 (0)