[Java] Set

2021. 4. 11. 21:54

1. Set ?

  • 요소의 저장 순서를 유지하지 않음
  • 중복 저장 불가
  • HashSet, LinkedHashSet, TreeSet

1.1 HashSet

  • Set 컬렉션 클래스에서 가장 많이 사용되는 클래스 중 하나
  • 해시 알고리즘(hash algorithm)을 사용하여 검색 속도가 매우 빠름

1.2 LinkedHashSet

  • 다른 Set들과 동일하게 중복은 허용하지 않으나 추가한 순서대로 값이 저장됨

1.3 TreeSet

  • 정렬된 상태로 저장되는 레드-블랙 트리(Red-Black tree)의 형태로 요소 저장 ( 오름차순 )
  • 대량의 데이터를 검색할 때 빠름

 

2. 사용법

Set 생성자

import java.util.HashSet;
import java.util.TreeSet;
import java.util.LinkedHashSet;


HashSet<Integer> set1 = new HashSet<Integer>();
LinkedHashSet<Integer> set2 = new LinkedHashSet<Integer>();
TreeSet<Integer> set3 = new TreeSet<Integer>();

 

Set 멤버함수

set.add(1);
set.add(3);
set.add(3); // set에 중복값 저장 불가 

set.remove(1);
set.clear();
set.size();

set.contains(1);	// set이 1을 포함하는지 확인
set1.equals(set2)	// set2와 set1이 같은지 확인
set.isEmpty();	// set이 비어있는지 확인
set.toArray()	// set을 array로 변환
       

 

Iterator

import java.util.Iterator;

Iterator<String> iter = set.iterator(); // set을 Iterator 안에 담기

while(iter.hasNext()) { // iterator에 다음 값이 있다면
	System.out.println("iterator : " + iter.next()); // iter에서 값 꺼내기
}

 

Set의 정렬

HashSet<Integer> set = new HashSet<>();
ArrayList<Integer> list = new ArrayList<>(set);	// set to list
Collections.sort(list);	// list 정렬

'Java' 카테고리의 다른 글

[Java] 문자열(String) 비교  (0) 2021.04.14
[Java] Iterator  (0) 2021.04.12
[Java] list  (0) 2021.04.12
[Java] 정렬 - sort, comparable, comparator  (0) 2021.04.12
[Java] Stack  (0) 2021.04.09

+ Recent posts