JAVA chapter15. 컬렉션 프레임워크


15.3 Set 컬렉션




15.3.1 HashSet


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
32
33
34
35
36
package sec03.exam01_hashset;
 
import java.util.*;
 
public class HashSetExample1 {
    public static void main(String[] args) {
        Set<String> set = new HashSet<String>();
        
        set.add("Java");
        set.add("JDBC");
        set.add("Servlet/JSP");
        set.add("Java");
        set.add("iBATIS");
        
        int size = set.size(); // 저장된 객체 수 얻기
        System.out.println("총 객체수: " + size);
        
        Iterator<String> iterator = set.iterator(); // 반복자 얻기
        while(iterator.hasNext()) { // 객체 수만큼 루핑
            String element = iterator.next(); // 한 개의 객체를 가져온다
            System.out.println("\t" + element);
        }
        
        set.remove("JDBC");
        set.remove("iBATIS");
        
        System.out.println("총 객체수: " + set.size());
        
        for(String element : set) {
            System.out.println("\t" + element);
        }
        
        set.clear();        
        if(set.isEmpty()) { System.out.println("비어 있음"); }
    }
}
cs

 

 



1
2
3
4
5
6
7
8
9
10
11
12
13
14
package sec03.exam01_hashset;
 
import java.util.*;
 
public class HashSetExample2 {
    public static void main(String[] args) {
        Set<Member> set = new HashSet<Member>();
        
        set.add(new Member("홍길동"30)); // 인스턴스는 다르지만 내부 데이터가 동일하므로 객체 1개만 저장
        set.add(new Member("홍길동"30));
        
        System.out.println("총 객체수 : " + set.size()); // 저장된 객체 수 얻기
    }
}
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
package sec03.exam01_hashset;
 
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) { // name과 age 값이 같으면 true를 리턴
        if(obj instanceof Member) {
            Member member = (Member) obj;
            return member.name.equals(name) && (member.age==age) ;
        } else {
            return false;
        }
    }
 
    public int hashCode() { // name과 age 값이 같으면 동일한 hashCode가 리턴
        return name.hashCode() + age; // return Objects.hash(name,age)
    }
}
cs





Posted by 너래쟁이
: