English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 기본 가이드

Java 흐름 제어

Java 배열

Java 중심 대상(I)

Java 중심 대상(II)

Java 중심 대상(III)

Java 예외 처리

Java 목록(List)

Java Queue(대기열)

Java Map 집합

Java Set 집합

Java 입력 출력(I/O)

Java Reader/Writer

Java 다른 주제

Java Set 인터페이스

이 튜토리얼에서는 Java의 Set 인터페이스 및 메서드를 배울 것입니다.

Java Collections 프레임워크의 Set 인터페이스는 Java에서 수학 집합의 기능을 제공합니다. 이는 Collection 인터페이스를 상속합니다.

List 인터페이스와 달리 Set 집합은 중복된 요소를 포함할 수 없습니다.

Set을 구현한 클래스

Set은 인터페이스이므로 객체를 생성할 수 없습니다.

Set 인터페이스의 기능을 사용하려면 다음 클래스를 사용할 수 있습니다:

이 클래스들은 Collections 프레임워크에서 정의되고 Set 인터페이스를 구현합니다.

Set을 상속한 인터페이스

Set 인터페이스는 이러한 서브 인터페이스를 확장합니다:

Set을 어떻게 사용하나요?

Java에서 Set을 사용하려면 java.util.Set 패키지를 가져와야 합니다.

//HashSet으로 Set 구현
Set<String> animals = new HashSet<>();

여기서는 animals라는 이름의 Set을 생성했습니다. HashSet 클래스를 사용하여 Set 인터페이스를 구현했습니다.

Set 메서드

Set 인터페이스는 Collection 인터페이스의 모든 메서드를 포함하고 있습니다. 이는 Collection이 Set의 슈퍼 인터페이스이기 때문입니다.

Set 인터페이스는 Collection 인터페이스의 일부 일반적인 메서드도 제공합니다:

  • add() - 지정된 요소를 집합에 추가합니다

  • addAll() - 지정된 집합의 모든 요소를 집합에 추가합니다

  • iterator() -순서로 요소를 접근할 수 있는 이터레이터를 반환합니다

  • remove() - 집에서 지정된 요소를 제거합니다

  • removeAll() - 지정된 다른 집합에서 존재하는 집합에서 모든 요소를 제거합니다

  • keepAll()  -지정된 다른 집합에서 여전히 존재하는 집합의 모든 요소를 유지합니다

  • clear() - 집합에서 모든 요소를 제거합니다

  • size() - 집합의 길이(요소 수)를 반환합니다

  • toArray() - 집합 중 모든 요소를 포함하는 배열을 반환합니다

  • contains() -  집합이 지정된 요소를 포함하고 있는 경우 true를 반환합니다

  • containsAll() - 집합이 지정된 집합의 모든 요소를 포함하고 있는 경우 true를 반환합니다

  • hashCode() -해시 코드 값을 반환합니다(집합 중 요소의 주소)

Set 집합 연산

Java Set 인터페이스는 합집합, 교집합, 부집합과 같은 기본 수학 집합 연산을 수행할 수 있도록 허용합니다

  • 합집합 - 두 집합 x와 y의 합집합을 얻으려면 x.addAll(y)를 사용할 수 있습니다

  • 교집합 - 두 집합 x와 y의 교집합을 얻으려면 x.retainAll(y)를 사용할 수 있습니다

  • 부집합 - x가 y의 부집합인지 확인하려면 y.containsAll(x)를 사용할 수 있습니다

Set 인터페이스 구현

1. HashSet 클래스를 구현합니다

import java.util.Set;
import java.util.HashSet;
class Main {
    public static void main(String[] args) {
        //HashSet 클래스를 사용하여 집합을 생성합니다
        Set<Integer> set1 = new HashSet<>();
        //set에 요소 추가1
        set1.add(2);
        set1.add(3);
        System.out.println("Set1: " + set1);
        //HashSet 클래스를 사용하여 다른 집합을 생성합니다
        Set<Integer> set2 = new HashSet<>();
        //요소 추가
        set2.add(1);
        set2.add(2);
        System.out.println("Set2: " + set2);
        //두 집합의 합집합
        set2.addAll(set1);
        System.out.println("합집합은: " + set2);
    }
}

출력 결과

Set1: [2, 3]
Set2: [1, 2]
합집합은: [1, 2, 3]

HashSet에 대한更多信息를 알고 싶다면 방문하십시오Java HashSet

2. TreeSet 클래스를 구현합니다

import java.util.Set;
import java.util.TreeSet;
import java.util.Iterator;
class Main {
    public static void main(String[] args) {
        //TreeSet 클래스를 사용하여 집합을 생성합니다
        Set<Integer> numbers = new TreeSet<>();
        // 요소를 set 집합에 추가합니다
        numbers.add(2);
        numbers.add(3);
        numbers.add(1);
        System.out.println("TreeSet: " + numbers);
        //iterator()를 사용하여 요소에 접근합니다
        System.out.print("iterator()를 사용하여 요소에 접근하다: ");
        Iterator<Integer> iterate = numbers.iterator();
        while(iterate.hasNext()) {
            System.out.print(iterate.next());
            System.out.print(", ");
        }
    }
}

출력 결과

TreeSet: [1, 2, 3]
iterator()를 사용하여 요소에 접근하다: 1, 2, 3,

TreeSet에 대한更多信息를 얻으려면 방문하세요Java TreeSet

지금 우리는 Set이 무엇인지 알았습니다. 다음 튜토리얼에서 EnumSet, HashSet, LinkedHashSet, TreeSet 등의 클래스에서 그 구현을 볼 것입니다.