💻 IT/📌 Java

[Java] Set 이란 ? Java Set 사용법

GODSU 2022. 4. 6. 12:51
반응형

 

저번 포스팅에서는 자료구조 중 큐(Queue)에 대해서 알아보았는데요!

 

[Java] Queue 란? Java Queue 사용법

저번 포스팅에서는 자료구조 중 Stack에 대해서 알아보았는데요! [Java] Stack 이란 ? 스택(Stack) 사용법 오늘은 자료구조 중 하나인 Stack에 대해서 알아보겠습니다! Stack 이란? 스택(Stack)은 제한적으로

godsu94.tistory.com


오늘은 자료구조 셋(Set)에 대해서 알아보겠습니다!



Set 이란?

셋(set :집합) 이란 데이터 자료구조(데이터 컬렉션) 중에 하나로 특정한 값들을 저장하는 추상자료형 입니다. 이때, 값들을 순서가 존재하지 않으며 중복되지 않습니다. 이는 수학에서의 유한 집합을 컴퓨터 구현한 것입니다. 다른 모음(Collection) 타입에서 특정 원소를 검색하는 것이 주 업무인 반면, 집합은 대상 원소가 집합에 소속되었는지 여부를 검사한다.


Set 특성
  1. 데이터를 비순차적으로 저장할 수 있는 순열 자료구조
  2. 삽입(Insert)한 데이터가 순서대로 저장되지 않음
  3. 수정 가능(mutable)
  4. 중복해서 삽입이 불가능. 동일한 값이 삽입되면 하나의 값만 저장됨
  5. Fast Lookup이 필요할 때 주로 쓰임

 

Set 구현 클래스
  1. HashSet : Set을 구현하는 대표 클래스, 데이터 중복할 수 없고 순서를 보장하지 않는다.
  2. TreeSet : HashSet 특성 + 오름차순으로 데이터를 정렬한다
  3. LinkedHashSet : 데이터를 중복해서 저장할 수없고, 입력한 순서대로 데이터를 저장한다

 

Java Set 사용법
import java.util.HashSet; // <--HashSet
import java.util.Set;  // <--Set

/* init Set */
Set<String> set = new HashSet<>();

Java에서는 java.util.Set 클래스를 임포트 하면 Set을 사용할 수 있습니다.
Set는 인터페이스로 직접 생성해서 사용할 수 없고, HashSet, TreeSet, LinkedHashSet 등의 클래스로 구현해서 사용해야 합니다.

 

반응형



[예제]

package project;

import java.util.HashSet; // <--HashSet
import java.util.Set;  // <--Set
import java.util.Iterator;

public class Main {

    public static void main(String[] args) {
        
        /* init Set */
        Set<String> set = new HashSet<>();
        
        set.add("G");
        set.add("O");
        set.add("D");
        set.add("S");
        set.add("U");
        
        Iterator<String> it = set.iterator(); // Iterator 사용

        /* Set에 저장된 값 출력 */
        System.out.println("********* Set Data **********");
		while (it.hasNext()) { 
			System.out.println(it.next()); 
		}
        
        set.remove("D"); //데이터 삭제
        
        it = set.iterator(); // Iterator 재선언
        
        System.out.println("********* remove **********");
		while (it.hasNext()) { 
			System.out.println(it.next()); 
		}
        
    }

}

예제를 보면 Set을 확인하려고 for문을 사용하지 않은 이유는 Set은 Index로 관리하지 않기 때문입니다. iterator(반복자)를 이용해서 접근하면 됩니다!

데이터 입력은 add(), 데이터 삭제는 remove() 함수를 이용하면 됩니다.

이 뿐만 아니라 Set에서 다양한 기능을 제공하는 함수들이 있습니다.

아래 링크에서 필요한 함수들을 사용해보세요~

 

Set (Java Platform SE 8 )

A collection that contains no duplicate elements. More formally, sets contain no pair of elements e1 and e2 such that e1.equals(e2), and at most one null element. As implied by its name, this interface models the mathematical set abstraction. The Set inter

docs.oracle.com


오늘은 자료구조 중 셋(Set)를 알아보았습니다.

감사합니다



반응형