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 set1 = new TreeSet<>(); // 2. 创建 TreeSet(指定比较器,如降序排序) TreeSet 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 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 headSet = (TreeSet) set1.headSet(3); System.out.println("小于3的子集合:" + headSet); // 输出:[1] // 17. 截取子集合(tailSet():大于等于指定元素) TreeSet tailSet = (TreeSet) set1.tailSet(1); System.out.println("大于等于1的子集合:" + tailSet); // 输出:[1, 3] // 18. 截取子集合(subSet():大于等于fromElement,小于toElement) TreeSet subSet = (TreeSet) set1.subSet(1, 3); System.out.println("子集合[1,3):" + subSet); // 输出:[1] } }