您的位置:首页 > 其它

操作集合类Collections,自定义集合排序方式

2016-08-12 16:22 274 查看
//Collections:操作集合的工具类
import java.util.*;
class ComByLength implements Comparator<String>
{
public int compare(String s1,String s2)
{
int num =s1.length()-s2.length();
return num==0?s1.compareTo(s2):num;
}
}
class Demo3
{
public static void main(String[] args)
{
//static <T extends Comparable<? super T>> void sort(List<T> list)
//需求:希望存储多个可以重复的对象,还希望可以排序
ArrayList<String> list  = new ArrayList<>();
list.add("htmlkkkkkkk");//String
list.add("javakkk");
list.add("mysqlkkkkkkkkkk");
list.add("java");

//按照集合中对象所属的类自身具备的比较方式进行排序的
// int compareTo()
//Collections.sort(list);

//按照自定的比较方式对集合中的对象进行排序
//Collections.sort(list,new ComByLength());

//得到和给定比较方式相反的比较方式
//Comparator com = Collections.reverseOrder(new ComByLength());
//Collections.sort(list,com);

//按照和集合中对象默认的比较方式向反的方式排序
//按照字符串大小从大到小排序
//Collections.sort(list,Collections.reverseOrder());

//Collections.reverse(list);

//System.out.println(Collections.max(list));

String max = getMax(list);
System.out.println(max);
}

public static <E extends Object&Comparable<? super E>>  E getMax(Collection<? extends E> col)
{
Iterator<? extends E>  ite = col.iterator();
E obj = ite.next();//得到集合中第一个对象
while(ite.hasNext())
{
E object = ite.next();
int num = obj.compareTo(object);
if(num<0)
obj = object;
}
return obj;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  集合工具类