본문 바로가기
프로그래밍 언어/Java 프로그래밍

컬렉션 프레임워크(5) Set 인터페이스 - HashSet

by Hyeon_ 2021. 11. 30.

컬렉션 프레임워크(Collection Framework)

Set 컬렉션

Set 인터페이스

  • 수학의 집합에 비유
  • 저장 순서가 유지되지 않음
  • 객체 중복 저장 불가
  • 구현 클래스: HashSet, LinkedHashSet, TreeSet
  • 전체 클래스를 대상으로 한 번씩 반복해 가져오는 반복자(Iterator) 제공
  • 인덱스로 객체를 검색해서 가져오는 메소드 없음
  • get() 메소드 없음

HashSet 예제

HashSetEx.java
package set;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class HashSetEx {
    public static void main(String[] args) {
        Set<String> set = new HashSet<String>();

        // 중복된 값은 한 번만 저장됨
        set.add("Java");
        set.add("JDBC");
        set.add("Java");
        set.add("Servelt/JSP");
        set.add("MyBatis");

        System.out.println("총 객체 수: "+set.size());

        Iterator<String> iterator = set.iterator();
        while(iterator.hasNext()) {
            System.out.println(iterator.next());
        }

        set.remove("JDBC");
        set.remove("MyBatis");

        System.out.println();
        for(String element : set) {
            System.out.println(element);
        }

        set.clear();
        if(set.isEmpty()) {
            System.out.println("비어 있음");
        }
    }
}

Iterator

  • java.util 패키지의 Iterator<E> 인터페이스
  • 컬렉션 프레임워크에서 컬렉션에 저장된 요소들을 읽어 오는 방법을 표준화한 것
  • 요소가 순서대로 저장된 컬렉션에서 요소를 순차적으로 검색할 때 사용
  • 기본 형식
Vector<Integer> v = new Vector<Integer>();
Iterator<Integer> it = v.iterator();
  • 벡터 v의 요소를 순차적으로 검색할 iterator 객체 변환
  • it.hasNext( )
  • it.next( )