1 字母按照倒序排列的Comparator实现方法代码
2 人的成绩按照升序排列,实现Comparator接口的方法,源代码如下
3这使用了一种策略模式。
import java.util.Comparator;
import java.util.Iterator;
import java.util.TreeSet;
public class TreeSetTest3 {
public static void main(String[] args) {
TreeSet set = new TreeSet(new Mycomparator());
set.add("C");
set.add("A");
set.add("B");
set.add("E");
set.add("F");
set.add("D");
for(Iterator iter = set.iterator();iter.hasNext();){
String value = (String)iter.next();
System.out.println(value);
}
}
}
class Mycomparator implements Comparator{
@Override
public int compare(Object o1, Object o2) {
String s1 = (String)o1;
String s2 = (String)o2;
return s2.compareTo(s1);
}
}
2 人的成绩按照升序排列,实现Comparator接口的方法,源代码如下
import java.util.Comparator;
import java.util.TreeSet;
public class TreeSetTest2 {
public static void main(String[] args) {
TreeSet set = new TreeSet(new Mycomparator2());
Person p1 = new Person(10);
Person p2 = new Person(20);
Person p3 = new Person(30);
Person p4 = new Person(40);
set.add(p1);
set.add(p2);
set.add(p3);
set.add(p4);
System.out.println(set);
}
}
class Person{
int score;
public Person(int score) {
this.score = score;
}
@Override
public String toString() {
return String.valueOf(this.score);
}
}
class Mycomparator2 implements Comparator{
@Override
public int compare(Object o1, Object o2) {
Person p1 = (Person)o1;
Person p2 = (Person)o2;
if(p1.score>p2.score){
return 1;
}
if(p1.score==p2.score){
return 0;
}
return -1;
}
}
3这使用了一种策略模式。