}
/*
* reverseOrder()方法给TreeSet集合传递一个逆序比较器,将所有元素反序。
* reverseOrder()还有一个重载方法reverseOrder(Comparator<T> cmp)
返回一个比较器,它强行逆转指定比较器的顺序。
*
*/
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.TreeSet;
public class CollectionsDemo2 {
public static void main(String args[])
{
orderDemo();
}
public static void orderDemo()
{
//调用有参的reverseOrder方法,首先按照其参数比较器对集合进行排序,再强行将集合元素反序。
TreeSet<String> ts=new TreeSet<String>(Collections.reverseOrder(new StrComparator2()));
ts.add("abvde");
ts.add("a");
ts.add("kk");
ts.add("ccc");
Iterator<String> it=ts.iterator();
while(it.hasNext())
{
sop(it.next());
}
}
public static <T> void sop(T t)
{
System.out.println(t);
}
}
//定义一个比较器
class StrComparator implements Comparator<String>
{
public int compare(String o1, String o2) {
return o2.compareTo(o1);
}
}
//定义一个比较器
class StrComparator2 implements Comparator<String>
{
public int compare(String o1, String o2) {
if(o1.length()>o2.length())
return 1;
if(o1.length()<o2.length())
return -1;
return o1.compareTo(o2);
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/qq_29817411/article/details/47354981