Java进阶-回顾 TreeSet 集合应该掌握什么 发表于 2020-05-27 | 分类于 Java | 字数统计: 452 字 | 阅读时长 ≈ 2 分钟 集合对象的创建 向集合中添加元素 从集合中取出某个元素 遍历集合 测试 TreeSet 集合的特点:可排序 测试 TreeSet 集合中存储的类型是自定义的 测试实现 Comparable 接口的方式 测试实现 Comparator 接口的方式(最好测试下匿名内部类的方式) 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108import java.util.Comparator;import java.util.Iterator;import java.util.TreeSet;public class TreeSetTest { public static void main(String[] args) { // 编写比较器可以改变规则 TreeSet<Integer> ts = new TreeSet<>(new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return o2 - o1; // 自动拆箱 } }); // 添加元素 ts.add(1); ts.add(12); ts.add(100); ts.add(11); ts.add(12); // 遍历(迭代器方式) Iterator<Integer> it = ts.iterator(); while (it.hasNext()) { Integer i = it.next(); System.out.println(i); } // 遍历(foreach) for (Integer x : ts) { System.out.println(x); } TreeSet<A> atree = new TreeSet<>(); atree.add(new A(10)); atree.add(new A(20)); atree.add(new A(5)); atree.add(new A(10)); // 遍历 for (A a : atree) { System.out.println(a); } // TreeSet<B> btree = new TreeSet<>(new BComparator()); // 匿名内部类 TreeSet<B> btree = new TreeSet<>(new Comparator<B>() { @Override public int compare(B o1, B o2) { return o1.i - o2.i; } }); btree.add(new B(10)); btree.add(new B(20)); btree.add(new B(5)); btree.add(new B(10)); // 遍历 for (B b : btree) { System.out.println(b); } }}// 第一种方式:实现 Comparable 接口class A implements Comparable<A> { int i; public A(int i) { super(); this.i = i; } @Override public String toString() { return "A [i=" + i + "]"; } @Override public int compareTo(A o) { return this.i - o.i; }}class B { int i; public B(int i) { super(); this.i = i; } @Override public String toString() { return "B [i=" + i + "]"; }}// 比较器class BComparator implements Comparator<B> { @Override public int compare(B o1, B o2) { return o1.i - o2.i; }}