进阶day04-具有排序功能的TreeSet的特有功能

This commit is contained in:
2026-02-03 13:44:58 +08:00
parent d0952b1aea
commit 4e8aec5d48

View File

@@ -1,6 +1,7 @@
package com.inmind.map01;
import java.util.Comparator;
import java.util.Iterator;
import java.util.TreeSet;
/*
@@ -17,23 +18,86 @@ public class TreeDemo07 {
treeSet.add(2);
treeSet.add(11);
treeSet.add(1);
System.out.println(treeSet);
// 2. 创建 TreeSet指定比较器如降序排序
TreeSet<Integer> treeSet1 = new TreeSet<>(new Comparator<Integer>() {
TreeSet<Integer> set1 = new TreeSet<>(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2 - o1;
// return o2 - o1;
return o1 - o2;
}
});
set1.add(3);
set1.add(2);
set1.add(1);
System.out.println(set1);
treeSet1.add(3);
treeSet1.add(2);
treeSet1.add(11);
treeSet1.add(1);
// 4. 删除元素remove()
set1.remove(2);
System.out.println(set1); // 输出:[1, 3]
System.out.println(treeSet1);
// 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();
//---------------treeSet特有的功能-----------------
// 8. 迭代元素(升序)
System.out.print("升序迭代:");
for (Integer num : set1) {
System.out.print(num + " ");
}
// 9. 降序迭代descendingIterator()
System.out.print("\n降序迭代");
//ascending
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(10);
System.out.println("小于10的最大元素" + 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]
}
}