快捷搜索: 王者荣耀 脱发

Java排序方法sort的使用详解

对数组的排序:

//对数组排序 public void arraySort(){ int[] arr = {1,4,6,333,8,2}; Arrays.sort(arr);//使用java.util.Arrays对象的sort方法 for(int i=0;i<arr.length;i++){ System.out.println(arr[i]); } }

需要用到降序排列,首先想到了Arrays.sort方法,但是Arrays.sort默认是升序排列, 可以使用一下方式来达到降序的需求。

Arrays.sort(a,Collections.reverseOrder()); 1 但是存在一个问题,Arrays.sort(a,Collections.reverseOrder())不支持基本类型(int,double,char等),如果是int型需要改成Integer,float要改成Float。 例如:

public class ArraysDemo1 { public static void main(String[] args) { //int包装类对象数组,赋值 Integer[] arr = {12,15,32,16,20,25}; //传入引用类型对象arr,用匿名类实现Comparator接口,i1在前则为升序,反正降序 Arrays.sort(arr, new Comparator() { @Override public int compare(Integer i1, Integer i2) { int num = i2 - i1; return num; } }); //打印数组 System.out.println(Arrays.toString(arr)); }

public class Main { public static void main(String[] args) { // 注意这里是Integer,不是int Integer[] arr={9,8,7,6,5,4,3,2,1}; Arrays.sort(arr,Collections.reverseOrder()); for(int i:arr){ System.out.println(i); } }

2.利用Comparator接口复写compare import java.util.*;

public class Main { public static void main(String[] args) { Integer[] arr={9,8,7,6,5,4,3,2,1}; Comparator cmp=new CMP(); Arrays.sort(arr,cmp); for(int i:arr){ System.out.println(i); } } } class CMP implements Comparator{ @Override //可以去掉。作用是检查下面的方法名是不是父类中所有的 public int compare(Integer a,Integer b){ // 两种都可以,升序排序的话反过来就行 // return a-b<0?1:-1; return b-a; } }

经验分享 程序员 微信小程序 职场和发展