본문 바로가기
공부

Java 컬렉션 (3) : Set

by 나나도 2024. 4. 26.
반응형

 

 3. Set  

  • 순서 없고 중복 없는 배열 (그러나.. LinkedHashSet 으로 생성하면 순서 보장)
  • Set은 그냥 Set으로 쓸 수도 있지만 HashSet, TreeSet 등으로 응용하여 사용할 수 있다.
  • Set는 생성자가 없는 껍데기라서 바로 생성할 수는 없다. (껍데기 = 인터페이스)
  • 생성자가 존재하는 클래스인 HashSet를 사용하여 Set를 생성해서 받을 수 있다.
  • 선언 : Set<Integer> intSet
  • 생성 : new HashSet<Integer>();
  • 추가 : intSet.add( { 추가할 값 } ) 형태로 값을 맨 위에 추가
  • 삭제 : intSet.remove( { 삭제할 값 } ) 형태로 삭제할 값을 직접 지정
  • 포함 확인 : intSet.contains( { 포함 확인 할 값 } ) 형태로 해당 값이 포함되어있는지 boolean 값으로 응답받음
 이외
  • HashSet : 가장 빠르며 순서를 전혀 예측할 수 없음
  • TreeSet : 정렬된 순서대로 보관하며 정렬 방법을 지정할 수 있음
  • LinkedHashSet : 추가된 순서, 또는 가장 최근에 접근한 순서대로 접근 가능
// Set 
import java.util.HashSet;
import java.util.Set; // Set 쓰고 엔터 치면 자동 생성

public class Main {

	public static void main(String[] args) {
		Set<Integer> intSet = new HashSet<Integer>(); // 선언 및 생성

		intSet.add(1);
		intSet.add(2);
		intSet.add(3);
		intSet.add(3); // 중복된 값은 덮어씁니다.
		intSet.add(3); // 중복된 값은 덮어씁니다.

		for (Integer value : intSet) {
			System.out.println(value); // 1,2,3 출력
		}

		// contains()
		System.out.println(intSet.contains(2)); // true 출력
		System.out.println(intSet.contains(4)); // false 출력

		// remove()
		intSet.remove(3); // 3 삭제

		for (Integer value : intSet) {
			System.out.println(value); // 1,2 출력
		}
	}
}​

 

반응형

'공부' 카테고리의 다른 글

상속  (0) 2024.05.13
Java 컬렉션 (4) : Map  (2) 2024.04.26
Java 컬렉션 (2) : Queue  (1) 2024.04.26
Java 컬렉션 (1) : List  (4) 2024.04.26
리눅스 명령어와 GIT명령어  (1) 2024.04.15