> Java > java지도 시간 > 순서가 지정된 집합 작업을 위해 Java에서 TreeSet 함수를 사용하는 방법

순서가 지정된 집합 작업을 위해 Java에서 TreeSet 함수를 사용하는 방법

王林
풀어 주다: 2023-06-26 14:51:10
원래의
1842명이 탐색했습니다.

Java의 TreeSet은 Red-Black Tree를 기반으로 구현된 Ordered Set입니다. 요소를 크기순으로 정렬해 빠르게 요소를 추가, 삭제, 검색할 수 있는 것이 특징입니다. 본 글에서는 실제 프로그래밍에 더 잘 적용될 수 있도록 Java에서 TreeSet 함수를 사용하여 순서화된 집합 연산을 수행하는 방법을 소개합니다.

1. TreeSet의 기본 동작

1. TreeSet 객체 생성

TreeSet을 사용하려면 먼저 TreeSet 객체를 생성해야 합니다. 매개 변수가 없는 생성자를 사용하여 빈 TreeSet을 만들거나 비교기를 지정하여 TreeSet 개체를 만들 때 데이터 정렬을 사용자 지정할 수 있습니다.

샘플 코드:

TreeSet<Integer> set = new TreeSet<>();
TreeSet<String> set2 = new TreeSet<>(new Comparator<String>() {
    @Override
    public int compare(String o1, String o2) {
        // 自定义排序规则
        return o1.compareToIgnoreCase(o2);
    }
});
로그인 후 복사

2. 요소 추가

add() 메서드를 통해 TreeSet에 요소를 추가합니다. TreeSet은 크기순으로 요소를 자동으로 정렬하며 동일한 요소는 한 번만 저장됩니다.

샘플 코드:

set.add(3);
set.add(1);
set.add(2);
set.add(3);
// 结果为[1, 2, 3]
System.out.println(set);
로그인 후 복사

3. 요소 삭제

Remove() 메서드를 사용하여 TreeSet의 요소를 삭제할 수 있습니다.

샘플 코드:

set.remove(3);
// 结果为[1, 2]
System.out.println(set);
로그인 후 복사

4. 요소가 존재하는지 확인

Contains() 메서드를 사용하여 TreeSet에 요소가 존재하는지 확인할 수 있습니다.

샘플 코드:

boolean contains = set.contains(2);
// 结果为true
System.out.println(contains);
로그인 후 복사

5. 요소 수 가져오기

size() 메서드를 사용하여 TreeSet의 요소 수를 가져올 수 있습니다.

샘플 코드:

int size = set.size();
// 结果为2
System.out.println(size);
로그인 후 복사

6. 요소 탐색

for 루프나 forEach() 메서드를 사용하여 TreeSet의 요소를 탐색할 수 있습니다.

샘플 코드:

for (Integer i : set) {
    System.out.print(i + " ");
}
System.out.println();

set.forEach(System.out::println);
로그인 후 복사

출력 결과:

1 2 
1
2
로그인 후 복사

2. TreeSet의 고급 작업

1. 첫 번째 요소와 마지막 요소를 가져옵니다.

first() 및 last() 메서드를 사용하여 세 번째 요소를 가져올 수 있습니다. TreeSet의 한 요소와 마지막 요소의 요소입니다.

샘플 코드:

Integer first = set.first();
Integer last = set.last();
// 结果为1 2
System.out.println(first + " " + last);
로그인 후 복사

2. 하위 집합 가져오기

subSet() 메서드를 사용하면 fromElement(포함)부터 toElement(제외)까지의 요소가 포함된 TreeSet의 하위 집합을 가져올 수 있습니다. fromElement를 지정하지 않으면 TreeSet의 첫 번째 요소부터 시작한다는 의미입니다.

샘플 코드:

TreeSet<Integer> subSet = (TreeSet<Integer>) set.subSet(1, 2);
// 结果为[1]
System.out.println(subSet);

TreeSet<String> subSet2 = (TreeSet<String>) set2.subSet("A", "c");
// 结果为[b, C]
System.out.println(subSet2);
로그인 후 복사

하위 집합이 변경되면 원래 TreeSet도 변경된다는 점에 유의해야 합니다.

3. 머리 또는 꼬리 요소의 하위 집합 가져오기

headSet() 메서드와 tailSet() 메서드를 사용하여 TreeSet의 머리(toElement 제외) 또는 꼬리(fromElement 포함) 요소의 하위 집합을 가져올 수 있습니다.

샘플 코드:

TreeSet<Integer> headSet = (TreeSet<Integer>) set.headSet(2);
// 结果为[1]
System.out.println(headSet);

TreeSet<String> tailSet = (TreeSet<String>) set2.tailSet("b");
// 结果为[b, C]
System.out.println(tailSet);
로그인 후 복사

또한 하위 집합이 변경되면 원래 TreeSet도 변경된다는 점에 유의하세요.

4. 지정된 요소보다 작거나 큰 요소를 가져옵니다

lower() 메서드, Floor() 메서드, high() 메서드 및ceiling() 메서드를 사용하여 다음보다 작거나 큰 요소를 가져올 수 있습니다. 지정된 요소.

샘플 코드:

Integer lower = set.lower(2);
Integer floor = set.floor(2);
Integer higher = set.higher(1);
Integer ceiling = set.ceiling(1);
// 结果为1 2 2 1
System.out.println(lower + " " + floor + " " + higher + " " + ceiling);
로그인 후 복사

주의해야 할 점:

  • lower() 메서드와 Floor() 메서드의 차이점은 다음과 같습니다. lower() 메서드는 지정된 요소보다 작은 가장 큰 요소를 얻습니다. , 지정된 요소보다 작은 가장 큰 요소. Floor() 메서드는 지정된 요소보다 작은 가장 가까운 요소, 즉 지정된 요소보다 작거나 같은 가장 가까운 요소를 가져옵니다.
  • higher() 메서드와ceiling() 메서드의 차이점은 다음과 같습니다. high() 메서드는 지정된 요소보다 큰 가장 작은 요소, 즉 지정된 요소보다 큰 가장 작은 요소를 가져옵니다. 천장() 메서드는 지정된 요소보다 큰 가장 가까운 요소, 즉 지정된 요소보다 크거나 같은 가장 가까운 요소를 가져옵니다.

3. 요약

이 글에서는 Java의 TreeSet 함수의 기본 동작과 고급 동작을 소개합니다. 실제 필요에 따라 해당 작업 방법을 선택하여 순서대로 수집 작업을 수행할 수 있습니다. subSet() 메소드, headSet() 메소드, tailSet() 메소드를 사용할 때, subset이 변경되면 원래 TreeSet도 변경되므로 이 점을 염두에 두어야 합니다.

위 내용은 순서가 지정된 집합 작업을 위해 Java에서 TreeSet 함수를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿