This commit is contained in:
2025-12-21 17:24:54 +08:00
commit e8c50a3d78
660 changed files with 29599 additions and 0 deletions

View File

@@ -0,0 +1,86 @@
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]
}
}