
hashCode 와 equals 오버라이딩을 통해서
데이터가 입력되는 두개의 값이 둘다 같아야 중복 허용하는
해쉬알고리즘
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | package framework22; import java.util.HashSet; import java.util.Iterator; public class HashTest1 { public static void main(String[] args) { HashSet<Person> hSet = new HashSet<Person>(); hSet.add(new Person("김김김", 10)); hSet.add(new Person("김김김", 10)); hSet.add(new Person("김이", 13)); hSet.add(new Person("김이", 12)); hSet.add(new Person("김", 12)); System.out.println("저장된 데이터 수: "+ hSet.size()); Iterator<Person> itr = hSet.iterator(); while(itr.hasNext()) System.out.println(itr.next()); } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | package framework22; import java.util.HashSet; import java.util.Iterator; public class Person { String name; int age; public Person(String name, int age) { this.name = name; this.age = age; } public String toString() { return name+"("+age+"세)"; } public int hashCode() { return age%3; } public boolean equals(Object obj) { Person per = (Person)obj; if(per.name == name){ if(per.age ==age){ return true; } else {return false; } } else{ return false; } } } | cs |
1 2 3 4 5 6 | //출력값 저장된 데이터 수: 4 김이(12세) 김(12세) 김김김(10세) 김이(13세) | cs |
'Java > Java Concept' 카테고리의 다른 글
[Java] TreeMap (0) | 2018.03.13 |
---|---|
[Java] TreeSet<E> (0) | 2018.03.13 |
[Java] LinkedList (0) | 2018.03.12 |
[Java] framework Arraylist (0) | 2018.03.12 |
[Java] 제네릭클래스의 와일드카드 이용하기. (0) | 2018.03.12 |