Collection_ HastSet
Posted 2015. 4. 10. 15:50package chap11;
import java.util.*;
// Set객체의 중복여부를 확인에 필요한 메서드
// equals() : 결과가 참이면 중복대상
// hashCode() : 결과가 동일하면 중복대상
//
// 두 가지 메서드의 결과가 참이고, 동일하면 해쉬값이 같은경우를
// 중복객체로 본다.
class Person{
String name;
int age;
Person( String name, int age ){
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
@Override
public int hashCode() {
/*final int prime = 31;
int result = 1;
result = prime * result + age;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;*/
return name.hashCode() + age;
}
@Override
public boolean equals(Object obj) {
/*if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Person other = (Person) obj;
if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;*/
if( obj instanceof Person ){
Person p = (Person)obj;
if( name.equals(p.name) && age == p.age )
return true;
else return false;
}
else return false;
}
}
public class HashSetEx2 {
public static void main(String[] args) {
HashSet set = new HashSet();
set.add( new String("abc") );
set.add( new String("abc") );
set.add( new Person("David", 10) );
set.add( new Person("David", 10) );
System.out.println(set);
}
}
'Java !!!' 카테고리의 다른 글
Collection _ArrayList (0) | 2015.04.10 |
---|---|
Collection _Iterator (0) | 2015.04.10 |
Collection_ TreeSet (0) | 2015.04.10 |
Collection_ Set 오름차순 내림차순 (0) | 2015.04.10 |
String_2 (0) | 2015.04.07 |
- Filed under : Java !!!