天天看点

深入理解自定义排序Comparator

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**
 * 当元素自身提供的比较规则不能满足我们对于排序的需求时, 我们可以额外的提供一种比较规则。
 * 
 * @author huawangxin
 *
 */
public class ListDemo {
	public static void main(String[] args) {
		List
   
     list = new ArrayList
    
     ();
		list.add("范传奇");
		list.add("马云");
		list.add("李宏毅");
		list.add("巴神");
		list.add("金枪小帅");
		list.add("奥巴马");
		list.add("赵云");
		System.out.println(list);
		MyComparator com=new MyComparator();
		/*
		 * 但元素自身提供的比较规则不能满足排序条件
		 * 我们可以提供额外的比较规则
		 */
//		Collections.sort(list);
		Collections.sort(list,com);
		System.out.println(list);
	}
}
class MyComparator implements Comparator
     
       {
	@Override
	public int compare(String o1, String o2) {
		// 哪个字符串的字符串多哪个字符串大
		return o1.length() - o2.length();
	}
}
     
    
   
           

上述如果有不对或者补充的地方,请大家批评和指教,谢谢。