TreeSet 用法
一、需要实现 Comparable接口,否则比较大小时编译会出错
public class TreeSetT {
public static void main(String[] args) {
TreeSet<Integer> set = new TreeSet<Integer>();
set.add(-5);
set.add(1);
set.add(5);
set.add(4);
set.add(9);
System.out.println("输出集合"+set);
System.out.println("输出集合第一个 "+set.first());
System.out.println("输出集合最后一个 "+set.last());
System.out.println("=================================");
//返回此 set 中大于等于给定元素的最小元素;如果不存在这样的元素,则返回 null。
System.out.println("返回此 set 中大于等于给定元素的最小元素;如果不存在这样的元素,则返回 null "+set.ceiling(3));
//返回此 set 中小于等于给定元素的最大元素;如果不存在这样的元素,则返回 null
System.out.println("返回此 set 中小于等于给定元素的最大元素;如果不存在这样的元素,则返回 null " +set.floor(6));
//返回此 set 中严格大于给定元素的最小元素;如果不存在这样的元素,则返回 null
System.out.println("返回此 set 中严格大于给定元素的最小元素;如果不存在这样的元素,则返回 null "+set.higher(5));
//返回此 set 中严格小于给定元素的最大元素;如果不存在这样的元素,则返回 null。
System.out.println("返回此 set 中严格小于给定元素的最大元素;如果不存在这样的元素,则返回 null。 "+set.lower(5));
//clone 克隆
Object clone = set.clone();
System.out.println(clone);
System.out.println("=================================");
//headSet()
System.out.println("返回此 set 的部分视图,其元素严格小于 toElement,为true 小于等于set视图, 为false 则小于视图");
System.out.println(set.headSet(5));
System.out.println(set.headSet(5, true));
System.out.println(set.headSet(5,false));
System.out.println(" 返回此 set 的部分视图,其元素从 fromElement(包括)到 toElement(不包括");
System.out.println(set.subSet(1, 5));
System.out.println("返回此 set 的部分视图,其元素范围从 fromElement 到 toElement===如为true(包含)false(不包含)");
System.out.println(set.subSet(1, true,5,false));
System.out.println(" 返回此 set 的部分视图,其元素大于等于 fromElement");
System.out.println(set.tailSet(5));
System.out.println("返回对此 set 中的元素进行排序的比较器;如果此 set 使用其元素的自然顺序,则返回 null");
Comparator<? super Integer> comparator = set.comparator();
System.out.println("comparator="+comparator);
System.out.println("返回在此 set 元素上按降序进行迭代的迭代器");
Iterator<Integer> descendingIterator = set.descendingIterator();
while(descendingIterator.hasNext()){
System.out.println(descendingIterator.next());
}
System.out.println("返回此 set 中所包含元素的逆序视图");
NavigableSet<Integer> descendingSet = set.descendingSet();
for (Iterator iterator = descendingSet.iterator(); iterator.hasNext();) {
Integer integer = (Integer) iterator.next();
System.out.println(integer);
}
System.out.println("获取并移除第一个(最低)元素;如果此 set 为空,则返回 null。");
Integer pollFirst = set.pollFirst();
System.out.println("pollFirst="+pollFirst);
System.out.println(set);
//同理 pollLast() 获取并移除最后一个(最高)元素;如果此 set 为空,则返回 null。
System.out.println("==========================================");
}
}
public static void main(String[] args) {
TreeSet<Integer> set = new TreeSet<Integer>();
set.add(-5);
set.add(1);
set.add(5);
set.add(4);
set.add(9);
System.out.println("输出集合"+set);
System.out.println("输出集合第一个 "+set.first());
System.out.println("输出集合最后一个 "+set.last());
System.out.println("=================================");
//返回此 set 中大于等于给定元素的最小元素;如果不存在这样的元素,则返回 null。
System.out.println("返回此 set 中大于等于给定元素的最小元素;如果不存在这样的元素,则返回 null "+set.ceiling(3));
//返回此 set 中小于等于给定元素的最大元素;如果不存在这样的元素,则返回 null
System.out.println("返回此 set 中小于等于给定元素的最大元素;如果不存在这样的元素,则返回 null " +set.floor(6));
//返回此 set 中严格大于给定元素的最小元素;如果不存在这样的元素,则返回 null
System.out.println("返回此 set 中严格大于给定元素的最小元素;如果不存在这样的元素,则返回 null "+set.higher(5));
//返回此 set 中严格小于给定元素的最大元素;如果不存在这样的元素,则返回 null。
System.out.println("返回此 set 中严格小于给定元素的最大元素;如果不存在这样的元素,则返回 null。 "+set.lower(5));
//clone 克隆
Object clone = set.clone();
System.out.println(clone);
System.out.println("=================================");
//headSet()
System.out.println("返回此 set 的部分视图,其元素严格小于 toElement,为true 小于等于set视图, 为false 则小于视图");
System.out.println(set.headSet(5));
System.out.println(set.headSet(5, true));
System.out.println(set.headSet(5,false));
System.out.println(" 返回此 set 的部分视图,其元素从 fromElement(包括)到 toElement(不包括");
System.out.println(set.subSet(1, 5));
System.out.println("返回此 set 的部分视图,其元素范围从 fromElement 到 toElement===如为true(包含)false(不包含)");
System.out.println(set.subSet(1, true,5,false));
System.out.println(" 返回此 set 的部分视图,其元素大于等于 fromElement");
System.out.println(set.tailSet(5));
System.out.println("返回对此 set 中的元素进行排序的比较器;如果此 set 使用其元素的自然顺序,则返回 null");
Comparator<? super Integer> comparator = set.comparator();
System.out.println("comparator="+comparator);
System.out.println("返回在此 set 元素上按降序进行迭代的迭代器");
Iterator<Integer> descendingIterator = set.descendingIterator();
while(descendingIterator.hasNext()){
System.out.println(descendingIterator.next());
}
System.out.println("返回此 set 中所包含元素的逆序视图");
NavigableSet<Integer> descendingSet = set.descendingSet();
for (Iterator iterator = descendingSet.iterator(); iterator.hasNext();) {
Integer integer = (Integer) iterator.next();
System.out.println(integer);
}
System.out.println("获取并移除第一个(最低)元素;如果此 set 为空,则返回 null。");
Integer pollFirst = set.pollFirst();
System.out.println("pollFirst="+pollFirst);
System.out.println(set);
//同理 pollLast() 获取并移除最后一个(最高)元素;如果此 set 为空,则返回 null。
System.out.println("==========================================");
}
}
运行结果