Arrays.sort()的用法

如果是普通类型的数据进行排序直接用即可.(但是想要用自己的顺序排就要重写下面一样的方法)

如果要对对象进行排序就要重写接口Comparable中的public int compareTo(Object o)方法或Comparator中的public int compare(Object obj1,Object obj2)方法,例子如下:

这是继承Comparable类的写法

Code:
  1. publicclassarray_Sort_ComparableimplementsComparable{
  2. privateintvalue;
  3. privateStringname;
  4. publicarray_Sort_Comparable(intv,Strings){
  5. value=v;
  6. name=s;
  7. }
  8. publicStringgetName(){
  9. returnname;
  10. }
  11. @Override
  12. publicintcompareTo(Objecto){
  13. if(this.value>((array_Sort_Comparable)o).value){
  14. return1;
  15. }
  16. else
  17. return-1;
  18. }
  19. publicStringtoString(){
  20. returnname+":"+value;
  21. }
  22. }
  23. 这是继承Comparator的写法

    Code:
    1. importjava.util.Comparator;
    2. publicclassarray_Sort_ComparatorimplementsComparator{
    3. publicintcompare(Objectobj1,Objectobj2){
    4. array_Sort_Comparableo1=(array_Sort_Comparable)obj1;
    5. array_Sort_Comparableo2=(array_Sort_Comparable)obj2;
    6. if(o1.getName().charAt(1)>o2.getName().charAt(1))
    7. return1;
    8. else
    9. return-1;
    10. }
    11. }
    12. 这是用来测试的

      Code:
      1. importjava.util.Arrays;
      2. publicclasstest{
      3. publicstaticvoidmain(String[]args){
      4. array_Sort_Comparable[]array=newarray_Sort_Comparable[2];
      5. array[0]=newarray_Sort_Comparable(10,"第一个物品");
      6. array[1]=newarray_Sort_Comparable(-10,"第二个物品");
      7. System.out.println("排序前:");
      8. for(array_Sort_Comparabletemp:array){
      9. System.out.println(temp);
      10. }
      11. Arrays.sort(array);//这是继承Comparable的用法
      12. System.out.println("用value排序后:");
      13. for(array_Sort_Comparabletemp:array){
      14. System.out.println(temp);
      15. }
      16. Arrays.sort(array,newarray_Sort_Comparator());//这是继承Comparator的用法
      17. System.out.println("用name排序后:");
      18. for(array_Sort_Comparabletemp:array){
      19. System.out.println(temp);
      20. }
      21. }
      22. }

      通过上面的例子,理解他们的机制就可以了

      你可能感兴趣的:(Arrays.sort()的用法)