public class Member {
public String name;
public int age;
public Member(String name, int age) {
this.name = name;
this.age = age;
}
public boolean equals(Object obj) {
if (obj instanceof Member) {
Member member = (Member) obj;
return member.name.equals(name) && (member.age == age);
} else {
return false;
}
}
public int hashCode() {
return name.hashCode() + age;
}
}
public class Member {
public String name;
public int age;
public Member(String name, int age) {
this.name = name;
this.age = age;
}
public boolean equals(Object obj) {
if (obj instanceof Member) {
Member member = (Member) obj;
return member.name.equals(name) && (member.age == age);
} else {
return false;
}
}
public int hashCode() {
return name.hashCode() + age;
}
}
Member 클래스:
HashSet에 저장할 때 중복 여부를 판단하기 위해 equals와 hashCode 메서드를 오버라이드.name과 age가 같으면 동일한 객체로 간주.HashSetExample 클래스:
HashSet에 Member 객체를 저장.총 객체 수 : 1.작동 원리:
hashCode: 객체의 저장 위치(버킷)를 결정.equals: 동일 객체인지 최종 확인.결과:
new Member("홍길동", 30) 두 번 추가 → 중복 제거 → 객체 수는 1. 핵심 요약:
HashSet은 중복 데이터를 자동으로 제거하며,
이를 위해 equals와 hashCode 메서드가 필수이다.
알아두면 좋은개념

활용 예시
List 사용 예:
학생 명단처럼 순서가 중요한 데이터.
예: ArrayList에 학생 이름 저장.
Set 사용 예:
중복을 허용하지 않는 데이터.
예: HashSet에 유니크한 ID 저장.
Map 사용 예:
사전 구조, 키를 이용해 데이터를 빠르게 검색.
예: HashMap<String, String>에 사용자 ID와 이름 저장.