集合(一)-Java中Arrays.sort()自定义数组的升序和降序排序

默认升序

package peng;
 
import java.util.Arrays;
 
 public class Testexample {
    public static void main(String[] args) {
         int[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5};        
         Arrays.sort(a);
         for(int arr:a) {
              System.out.print(arr + " ");
    		     }
      }
  }

 自定义 利用Collections.reverseOrder()方法:

package peng;
 
import java.util.Arrays;
import java.util.Collections;
public class Testexample {
    	   public static void main(String[] args) {
    		           integer[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5};
    		           Arrays.sort(a,Collections.reverseOrder());
    		           for(int arr:a) {
    		               System.out.print(arr + " ");
    		           }
    		       }
    		   }

 实现Comparator接口的复写compare()方法,代码如下:

package peng;
 
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
 
public class Testexample {
    	   public static void main(String[] args) {
    		           /*注意,要想改变默认的排列顺序,不能使用基本类型(int,double, char)
    		           而要使用它们对应的类*/
    		           Integer[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5};
    		           //定义一个自定义类MyComparator的对象
    		           Comparator cmp = new MyComparator();
    		           Arrays.sort(a,cmp);
    		           for(int arr:a) {
    		               System.out.print(arr + " ");
    		           }
    		       }
    		   }
    		   //实现Comparator接口
    		   class MyComparator implements Comparator<Integer>{
    		      @Override
    		       public int compare(Integer o1, Integer o2) {
    		        /*如果o1小于o2,我们就返回正值,如果o1大于o2我们就返回负值,
    		         这样颠倒一下,就可以实现降序排序了,反之即可自定义升序排序了*/
    		       return o2-o1;    
       }
    	
  }

  

 

posted @ 2019-11-16 18:25  Andrew_F  阅读(1614)  评论(0编辑  收藏  举报