본문 바로가기
자료구조

HashSet

by 앙헬디마리아 2021. 3. 1.
728x90

Set 컬렉션은 저장 순서가 유지되지 않는다. 또한 객첼르 중복해서 저장할 수 없고, 하나의 null만 저장할 수 있다.

 

Set 컬렉션에는 HashSet, LinkedHashSet, TreeSet 등이 있는데, 이번에는 HashSet에 대해 중점적으로 살펴보도록 하겠다.

 

먼저 Set 인터페이스의 메소드들을 살펴보자.

 

기능 메소드 설명
객체 추가 boolean add(E e) 주어진 객체를 저장, 객체가 성공적으로 저장되면 true를 리턴하고 중복 객체면 false 리턴
객체검색 boolean contains(Object o) 주어진 객체가 저장되어 있는지 여부
isEmpty() 컬렉션이 비어 있는지 조사
Iterator<E> iterator() 저장된 객체를 한 번씩 가져오는 반복자 리턴
int size() 저장되어 있는 전체 객체 수 리턴
객체삭제 void clear() 저장된 모든 객체를 삭제
boolean remove(Object e) 주어진 객체를 삭제

 

 

HashSet은 Set 인터페이스의 구현 클래스이다. HashSet을 생성하기 위해서는 다음과 같이 기본 생성자를 호출하면된다.

Set<E> set = new HashSet<E>();

 

HashSet은 객체들을 순서 없이 저장하고 동일한 객체는 중복 저장하지 않는다.

 

간단한 예제를 살펴보자

    public static void main(String[] args) {

        Set<String> set = new HashSet<>();

        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());

        iterator = set.iterator();
        while (iterator.hasNext()){
            String element = iterator.next();
            System.out.println("\t" + element);
        }

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

 

결과

 

 

728x90

'자료구조' 카테고리의 다른 글

LinkedList  (0) 2021.02.07
Arraylist  (0) 2021.02.07