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);
주의해야 할 점:
3. 요약
이 글에서는 Java의 TreeSet 함수의 기본 동작과 고급 동작을 소개합니다. 실제 필요에 따라 해당 작업 방법을 선택하여 순서대로 수집 작업을 수행할 수 있습니다. subSet() 메소드, headSet() 메소드, tailSet() 메소드를 사용할 때, subset이 변경되면 원래 TreeSet도 변경되므로 이 점을 염두에 두어야 합니다.
위 내용은 순서가 지정된 집합 작업을 위해 Java에서 TreeSet 함수를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!