练习内容如题,自定义一个比较器StringLengthComparator ,使String按照长度进行排序,短的在前,长的在后,长度相等则使用String的compareTo()进行。
代码如下:
package SetDemo;
//调用StringComparator比较器进行比较
import java.util.*;
import java.util.Comparator;;
public class ComparatorDemo {
public static void main(String[] args) {
TreeSet<String> ts = new TreeSet<String>(new StringLengthComparator());
ts.add("abcde");
ts.add("abc");
ts.add("bc");
ts.add("ac");
for(String s : ts){
System.out.println(s);
}
}
}
/*
* 实现String按照长度排序的比较器
*/
class StringLengthComparator implements Comparator<String>{
public int compare(String s1, String s2){
int num = s1.length()-s2.length();
int num2 = s1.compareTo(s2);
return num == 0 ? num2 : num;
}
}
程序的输出结果为:
ac
bc
abc
abcde