본문 바로가기
study/Java

[Java] 32. Collection (Set2)

by 금이패런츠 2022. 3. 30.
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