Files
javaSE1001/day01/src/com/inmind/TreeSetDemo.java
2025-12-21 17:24:54 +08:00

86 lines
3.3 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.inmind;
import java.util.TreeSet;
import java.util.Comparator;
import java.util.Iterator;
public class TreeSetDemo {
public static void main(String[] args) {
// 1. 创建 TreeSet默认自然排序
TreeSet<Integer> set1 = new TreeSet<>();
// 2. 创建 TreeSet指定比较器如降序排序
TreeSet<Integer> set2 = new TreeSet<>(Comparator.reverseOrder());
// 3. 添加元素add()
set1.add(3);
set1.add(1);
set1.add(2);
set1.add(2); // 重复元素,添加失败
System.out.println(set1); // 输出:[1, 2, 3](自动排序)
// 4. 删除元素remove()
set1.remove(2);
System.out.println(set1); // 输出:[1, 3]
// 5. 判断元素是否存在contains()
boolean has3 = set1.contains(3);
System.out.println(has3); // 输出true
// 6. 获取集合大小size()
int size = set1.size();
System.out.println(size); // 输出2
// 7. 清空集合clear()
// set1.clear();
// 8. 迭代元素(升序)
System.out.print("升序迭代:");
for (Integer num : set1) {
System.out.print(num + " ");
}
// 9. 降序迭代descendingIterator()
System.out.print("\n降序迭代");
Iterator<Integer> it = set1.descendingIterator();
while (it.hasNext()) {
System.out.print(it.next() + " ");
}
// 10. 获取第一个元素first()
Integer first = set1.first();
System.out.println("\n第一个元素" + first); // 输出1
// 11. 获取最后一个元素last()
Integer last = set1.last();
System.out.println("最后一个元素:" + last); // 输出3
// 12. 获取小于指定元素的最大元素lower()
Integer lower = set1.lower(3);
System.out.println("小于3的最大元素" + lower); // 输出1
// 13. 获取小于等于指定元素的最大元素floor()
Integer floor = set1.floor(3);
System.out.println("小于等于3的最大元素" + floor); // 输出3
// 14. 获取大于指定元素的最小元素higher()
Integer higher = set1.higher(1);
System.out.println("大于1的最小元素" + higher); // 输出3
// 15. 获取大于等于指定元素的最小元素ceiling()
Integer ceiling = set1.ceiling(1);
System.out.println("大于等于1的最小元素" + ceiling); // 输出1
// 16. 截取子集合headSet():小于指定元素)
TreeSet<Integer> headSet = (TreeSet<Integer>) set1.headSet(3);
System.out.println("小于3的子集合" + headSet); // 输出:[1]
// 17. 截取子集合tailSet():大于等于指定元素)
TreeSet<Integer> tailSet = (TreeSet<Integer>) set1.tailSet(1);
System.out.println("大于等于1的子集合" + tailSet); // 输出:[1, 3]
// 18. 截取子集合subSet()大于等于fromElement小于toElement
TreeSet<Integer> subSet = (TreeSet<Integer>) set1.subSet(1, 3);
System.out.println("子集合[1,3)" + subSet); // 输出:[1]
}
}