상세 컨텐츠

본문 제목

[JAVA] Set 사용법

Spring/JAVA

by Chan.94 2022. 7. 15. 12:10

본문

반응형

Set

간단하게 집합의 개념의 구현체이다.
Set은 수학에서 배운 집합이라 생각하시면 이해가 편하다. 단순하게 메모리 공간에서 특정 데이터들을 모아두는 장소로서의 개념이다. 

 

Set 특징

  • 비순차적이라 데이터 삽입 순서대로 저장되지 않아, 특정한 순서를 기대할 수 없다.
  • 중복을 허용하지 않아서 같은 값을 삽입하면 되면, 마지막에 삽입한 값 하나만 저장된다.
  • 탐색 속도가 빠르다.

순서는 상관없지만 데이터의 중복을 허용하고 싶지 않을 때 사용하면 강력한 자료구조이다.

 

Set 종류

  • HashSet
    Set 컬렉션을 구현하는 대표적인 클래스
    순서를 보장 하지 않는 Set
  • TreeSet
    Binary Search Tree 구조
    추가와 삭제에는 시간이 좀 더 걸리지만, 정렬 및 탐색에 성능이 좋음
    오름차순으로 데이터를 저장
  • LinkedHashSet
    데이터가 들어간 순서대로 저장하는 Set

 

Set 사용법

add(value) - 추가

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

set.add(1);
set.add(2);
set.add(3);
System.out.println("추가 1 :" + set.add(1));	//false 
System.out.println("추가 2 :" + set.add(2));	//false 
System.out.println("추가 3 :" + set.add(3));	//false 
System.out.println("추가 4 :" + set.add(4));	//true  
System.out.println("추가 5 :" + set.add(5));	//true

입력되는 값이 HashSet 내부에 존재하지 않는다면 그 값을 HashSet에 추가하고 true를 반환하고 내부에 값이 존재한다면 false를 반환한다.

 

remove(value) - 삭제

set.remove(3);	//값 3 제거

 

clear() - 전제 삭제

set.clear();	//모든 값 제거

 

size() - 크기

set.size();

 

Set 값출력

//반복자 - Iterator
Iterator iter = set.iterator();
while(iter.hasNext()) {//값이 있으면 true 없으면 false
    System.out.println("value : " + iter.next());
}

Set에는 인덱스로 객체를 가져오는 get(index) 메소드가 없습니다. 대신 전체 객체를 대상으로 한 번씩 반복해서 가져오는 반복자(Iterator)를 제공한다. 반복자는 이터레이터 인터페이스를 구현한 객체를 말하는데 iterator() 메소드를 호출하면 얻을 수 있다. Iterator에서 하나의 객체를 가져올 때는 next() 메소드를 사용한다.

next() 메소드를 사용하기 전에 먼저 가져올 객체가 있는지 확인하는 것이 좋습니다. hasNext() 메소드는 가져올 객체가 있으면 true를 리턴하고 없으면 false를 리턴합니다.

 

contains(value) - 검색

set.contains(1);

존재한다면 true, 존재하지 않는다면 false를 반환한다

 

반응형

관련글 더보기

댓글 영역

>