——- android培训、java培训、期待与您交流! ———-
/*
static Comparator
reverseOrder()
返回一个比较器,它强行逆转实现了 Comparable 接口的对象 collection 的自然顺序。
static Comparator
reverseOrder(Comparator cmp)
返回一个比较器,它强行逆转指定比较器的顺序。
*/
import java.util.*;
class CollectionsDemo3
{
public static void sop(Object obj)
{
System.out.println(obj);
}
public static void main(String[] args)
{
//reverseOrderDemo();
reverseOrderDemo_2();
}
//reverseOrder方式一
public static void reverseOrderDemo()
{
//创建一个集合
TreeSet<String> ts = new TreeSet<String>();
//添加
ts.add("abcedf");
ts.add("cedf");
ts.add("aedf");
ts.add("babcedf");
//打印原集合
sop(ts);
//创建一个集合
TreeSet<String> ts1 = new TreeSet<String>(Collections.reverseOrder());
//添加
ts1.add("abcedf");
ts1.add("cedf");
ts1.add("aedf");
ts1.add("babcedf");
//打印逆转后的集合
sop(ts1);
}
//reverseOrder方式二
public static void reverseOrderDemo_2()
{
//创建一个集合
TreeSet<String> ts = new TreeSet<String>(new StrLenComparator());
//添加
ts.add("abcedf");
ts.add("cedf");
ts.add("aedf");
ts.add("babcedf");
//打印原集合
sop(ts);
//创建一个集合
TreeSet<String> ts1 = new TreeSet<String>(Collections.reverseOrder(new StrLenComparator()));
//添加
ts1.add("abcedf");
ts1.add("cedf");
ts1.add("aedf");
ts1.add("babcedf");
//打印逆转后的集合
sop(ts1);
}
}
//字符串长度升序比较器
class StrLenComparator implements Comparator<String>
{
public int compare(String str1, String str2)
{
int num = new Integer(str1.length()).compareTo(new Integer(str2.length()));
if(num == 0)
return str1.compareTo(str2);
return num;
}
}
reverseOrder方式一
reverseOrder方式二