`

JDK Arrays sort

阅读更多
1. List排序的调用
  
Collections.sort() --> Arrays.sort --> MergeSort()


2. 两种排序策略:Comparable 和 Comparator

  
    public static <T> void sort(List<T> list, Comparator<? super T> c) {
	Object[] a = list.toArray();
	Arrays.sort(a, (Comparator)c);
	ListIterator i = list.listIterator();
	for (int j=0; j<a.length; j++) {
	    i.next();
	    i.set(a[j]);
	}
    }
   


  
Comparator
是在外面定义的排序策略,类似于策略模式,可以传递进去
   不同的策略实现。

  
   public static <T extends Comparable<? super T>> void sort(List<T> list) {
	Object[] a = list.toArray();
	Arrays.sort(a);
	ListIterator<T> i = list.listIterator();
	for (int j=0; j<a.length; j++) {
	    i.next();
	    i.set((T)a[j]);
	}
    }
   


  
Comparable
是实体类中实现的方法。

3. Comparable的定义
  
   public interface Comparable<T> {
       public int compareTo(T o);
   }
   


4. Comparator的定义
  
   public interface Comparator<T> {
       int compare(T o1, T o2);
   }
   

 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics