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();
// }
//}