package com.liangjing.set;
import java.util.Comparator;
import java.util.Iterator;
import java.util.TreeSet;
public class TreeSetTest {
/**
* @param args
*/
public static void main(String[] args) { //main方法
// TODO Auto-generated method stub
TreeSet set = new TreeSet(new MyComparator() {//构造方法内传递比较器实例
});
// set.add("C");
// set.add("A");
// set.add("B");
// set.add("E");
// set.add("F");
// set.add("D");
//实例化
Student s1 = new Student(78);
Student s2 = new Student(95);
Student s3 = new Student(82);
Student s4 = new Student(69);
//加入集合
set.add(s1);
set.add(s2);
set.add(s3);
set.add(s4);
<span style="white-space:pre"> </span>//迭代器输出
for (Iterator iter = set.iterator(); iter.hasNext();) {
// String value = (Student)iter.next();
// System.out.println(value);
Student Student =(Student)iter.next();
System.out.println(Student.score); //直接打印Student输出也一样?
}
}
}
class Student { //学生类
int score; //分数属性
public Student(int score) { // 构造方法
this.score = score;
}
public String toString() { //toString重写,此处不是必须
return String.valueOf(this.score);
}
}
class MyComparator implements Comparator { //自定义比较器实现Comparator接口 compare方法,这里实现逆序
public int compare(Object o1, Object o2) {
// String s1 = (String) o1;
// String s2 = (String) o2;
// return s2.compareTo(s1);
Student s1 =(Student)o1;
Student s2 =(Student)o2;
return s2.score-s1.score; //逆序
}
}
输出 //注释部分输出 FEDCBA
95
82
78
69