diff --git a/javaSE-day04/src/com/inmind/map01/TreeDemo07.java b/javaSE-day04/src/com/inmind/map01/TreeDemo07.java index b042c1d..506883e 100644 --- a/javaSE-day04/src/com/inmind/map01/TreeDemo07.java +++ b/javaSE-day04/src/com/inmind/map01/TreeDemo07.java @@ -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 treeSet1 = new TreeSet<>(new Comparator() { + TreeSet set1 = new TreeSet<>(new Comparator() { @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 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 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] } }