package collection; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Random; /** * 集合的排序 *集合的工具类:java.util.collections *该工具类提供年很多静态方法用于方便的操作集合 *其中就由sort方法用于对List集合进行自然排序:从小到大 * * *使用比较器为元素提供比较规则,利用Collections *重载的sort方法对集合排序 * @author 清风已来 * */ public class SortListDome1 { public static void main(String[] args) { List <String> list =new ArrayList<String>(); list.add("大河之剑天上来"); list.add("将进酒") ; list.add("来干,来干"); /** * 排序字符串时,字符串自身的大小规则 * 是按照字符的编码大小比较 * * 也可以自定义一个方法按照字符串多少来排序,以下是按哪个多就哪个大 */ System.out.println(list); // MyComparator c = new MyComparator(); /* * 相对于sort(List list)而言,下面的排序规则不需要集合元素必须 * 实现Coparable接口,这样在排序自定义类型元素时就没有对该元素具有“侵入性” * 所以u在排序泛由自定义类型元素的集合时都应当使用下面的排序方法 * 当元素已经实现了comparable接口,但是其比较大小的规则不满足排序需求时, * 也应当使用下面的排序方法 * */ Collections.sort(list,new Comparator<String>() { public int compare(String o1, String o2) {return o1.length()-o2.length();}}); System.out.println(list); } } //class MyComparator implements Comparator<String>{ // @Override // public int compare(String o1, String o2) { // // return o1.length()-o2.length(); // } //}