728x90
반응형
package chap13;
import java.util.HashSet;
import java.util.Set;
/*
* set 객체에서 중복 판단 메서드
* 1. equals : 결과가 true
* 2. hashCod : 결과값 동일한 경우
* => 1, 2 모두 만족하는 경우 중복 객체로 판단함.
*
* 사용자가 정의한 클래스의 객체의 중복판단하기 위해서는 equals, hashCod 메서드를 오버라이딩 필요.
*/
class Person {
String name;
int age;
Person(String name, int age) {
this.name = name;
this.age = age;
}
public String toString() {
return "(" + name + "," + age + ")";
}
//equals, hashCode 메서드 오버라이딩 : 논리적으로 같은 객체임을 판단
@Override
public int hashCode() {
return name.hashCode() + age;
}
@Override
public boolean equals(Object obj) {
if(obj instanceof Person) {
Person p = (Person)obj;
return name.equals(p.name) && age == p.age;
} else return false;
}
}
public class SetEx2 {
public static void main(String[] args) {
Set<Object> set = new HashSet<>();
set.add(new String("abc"));
set.add(new String("abc"));
set.add(new Person("홍길동",10));
set.add(new Person("홍길동",10));
System.out.println(set);
}
}
728x90
반응형
'study > Java' 카테고리의 다른 글
[Java] 32. Collection (Set3) (0) | 2022.03.30 |
---|---|
[Java] 32. Collection (Set) Exam2 (Student 클래스 구현하기 ) (0) | 2022.03.30 |
[Java] 32. Collection (Set1) (0) | 2022.03.30 |
[Java] 32. Collection (List3) (0) | 2022.03.30 |
[Java] 32. Collection (List2) (0) | 2022.03.30 |