import java.util.Comparator;
import java.util.Iterator;
import java.util.TreeSet;
public class 总结TreeSet {
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(20);
ts.add(13);
ts.add(4);
Iterator<Integer> it = ts.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
for(Integer i:ts){
System.out.println(i);
}
TreeSet<A> tss = new TreeSet<>();
tss.add(new A(100));
tss.add(new A(200));
tss.add(new A(1020));
tss.add(new A(1400));
tss.add(new A(2100));
tss.add(new A(10));
tss.add(new A(12));
for(A a:tss){
System.out.println(a);
}
TreeSet<B> tb = new TreeSet<>(new Comparator<B>() {
@Override
public int compare(B o1, B o2) {
return o1.i - o2.i;
}
});
tb.add(new B(1));
tb.add(new B(12));
tb.add(new B(471));
tb.add(new B(10));
tb.add(new B(21));
for(B b:tb){
System.out.println(b);
}
}
}
class A implements Comparable<A>{
int i;
public A(int i) {
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) {
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;
}
}