点击咨询:郑州3+2学校 河南省技校 郑州电脑学校

首页 > 郑州北大青鸟学员作品 > Java学习 >

[Java] Java排序

时间:2016-04-19 16:48:25 作者:未知 点击: 0
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)比较用来排序的两个参数。根据第一个参数小于、等于或大于第二个参数分别返回负整数、零或正整数。

(责任编辑:未知)
zuopin
6张图 弄懂软件开发
学员百分百就业满意

升学案例

数十家优质大学合作

更多了解

就业案例

高端就业,不做普通工

更多了解