hashCode 메서드
<aside> 🪄
예제
Integer i = 10;
String strA = "A";
String strAB = "AB";
System.out.println(i.hashCode());
System.out.println(strA.hashCode());
System.out.println(strAB.hashCode());
출력
10
65
2081
strAB = “AB” 계산 법
EX)
"A":
hashCode("A") = 65 (문자 하나라서 65×310=65).
65×310=6565 \times 31^0 = 65
"ABC":
'A': 65×312=65×961=62465
65×312=65×961=6246565 \times 31^2 = 65 \times 961 = 62465
'B': 66×311=66×31=2046
66×311=66×31=204666 \times 31^1 = 66 \times 31 = 2046
'C': 67×310=67
67×310=6767 \times 31^0 = 67
합산: 62465+2046+67=64578.
62465+2046+67=6457862465 + 2046 + 67 = 64578
공식

</aside>
예제2
<aside> 🔎
package collection.set.member;
import java.util.Objects;
public class Member {
private String id;
public Member(String id) {
this.id = id;
}
public String getId() {
return id;
}
@Override
public boolean equals(Object o) {
if (o == null || getClass() != o.getClass()) return false;
Member member = (Member) o;
return Objects.equals(id, member.id);
}
@Override
public int hashCode() {
return Objects.hashCode(id);
}
@Override
public String toString() {
return "Member{" +
"id='" + id + '\\'' +
'}';
}
}
---------------------
Member member1 = new Member("idA");
Member member2 = new Member("idA");
System.out.println(member1 == member2);
System.out.println(member1.equals(member2));
System.out.println(member1.hashCode());
System.out.println(member2.hashCode());
출력
false
true
104070
104070
//해시코드 계산 법은 위와 동일한 공식을 이용하여 출력된 값


