北大青鸟郑州职英教育河南工业大学校区——河南高中起点互联网职场精英培训领先品牌!

主页 > 青鸟学堂 > Java学习 >

[Java] Java排序

时间:2016-04-19 16:48 来源:未知 作者:admin 点击:
1. Collections.sort()方法 看看方法的签名: 1)public static T extends Com parable ? super T void sort ( L ist T list) 以及相应的说明: 根据元素的 自然顺序 对指定列表按升序进行排序。列表中的所有元素都必须实现Comparable接口。

 1. Collections.sort()方法
       看看方法的签名:
       1)public static <T extends Comparable<? super T>> void sort(List<T> list)
       以及相应的说明:根据元素的自然顺序对指定列表按升序进行排序。列表中的所有元素都必须实现Comparable接口。此外,列表中的所有元素都必须是可相互比较的(也就是说,对于列表中的任何 e1 和 e2 元素,e1.compareTo(e2) 不得抛出 ClassCastException)。此排序方法具有稳定性:不会因调用 sort 方法而对相等的元素进行重新排序。
       可以看出,默认的情况对付String对象没什么问题,但如果是普通的对象,则必须实现Comparable接口,否则无法通过编译。
       看看Comparable接口:public interface Comparable<T>此接口强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序,类的compareTo方法被称为它的自然比较方法
       对于类 C 的每一个 e1 和 e2 来说,当且仅当 e1.compareTo(e2) == 0 与 e1.equals(e2) 具有相同的 boolean 值时,类 C 的自然排序才叫做与equals一致。注意,null 不是任何类的实例,即使 e.equals(null) 返回 false,e.compareTo(null) 也将抛出 NullPointerException。
       int compareTo(T o)
       比较此对象与指定对象的顺序。如果该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。
       2)public static <T> void sort(List<T> list,Comparator<? super T> c)
       2. Arrays.sort()方法1)public static void sort(int[] a) public static void sort(int[] a,int fromIndex,int toIndex)
        fromIndex - 要排序的第一个元素的索引(包括)toIndex - 要排序的最后一个元素的索引(不包括)

  1. public class ArraysDemo{
  2.   public static void main(String[] args){
  3.     int i1[]={1,2,3,4,5,6};
  4.     int i2[]={6,5,4,3,2,1};
  5.     Arrays.sort(i2);
  6.     System.out.println(Arrays.equals(i1,i2));
  7.   }
  8. }
  9.  
复制代码
       2)public static <T> void sort(T[] a,Comparator<? super T> c)public static <T> void sort(T[] a,int fromIndex,int toIndex,Comparator<? super T> c)
       fromIndex - 要排序的第一个元素的索引(包括)toIndex - 要排序的最后一个元素的索引(不包括)c - 确定数组顺序的比较器。null值指示应该使用元素的自然排序引出另一种比较器:Comparator使用comparaTo()方法时,list中的元素只能有一种将自己与同类型的另一个元素做比较的方法。但Comparator是独立于所有比较元素之外的——它是独立的类!因此可以有各种不同的比较方法。
       public interface Comparator<T>强行对某个对象 collection 进行整体排序的比较函数。可以将 Comparator 传递给 sort 方法(如 Collections.sort 或 Aarrys.sort),从而允许在排序顺序上实现精确控制。还可以使用 Comparator来控制某些数据结构(如有序Set有序映射)的顺序,或者为那些没有自然顺序的对象collection提供排序。
       int compare(T o1,T o2)比较用来排序的两个参数。根据第一个参数小于、等于或大于第二个参数分别返回负整数、零或正整数。

(责任编辑:admin)
分享到: 更多

免费试听申请

zuopin
6张图 弄懂软件开发
学员百分百就业满意
电子商务营销师 web前端 稍后咨询