Java中的排序函数

191 阅读1分钟

Arrays.sort();


  • 重载

  • 实现demo

public class Main{
    public static void main(String[] args){
        Scanner input  = new Scanner(System.in);
        Integer integer = input.nextInt();
        Integer[] integers = new Integer[integer];
        for (int i=0; i< integer; i++){
            integers[i] = input.nextInt();

        }
        Arrays.sort(integers, 0, integers.length, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2 - o1;
            }
        });
        for(int i:integers){
            System.out.print(i);
        }


    }
}

  • 原理图

image.png

Collections.sort()


  • 重载

image.png

  • 实现demo
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner input  = new Scanner(System.in);
        Integer integer = input.nextInt();
        List<Integer> integers = new ArrayList<>();
        for (int i=0; i< integer; i++){
            integers.add(input.nextInt());

        }
        Collections.sort(integers, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o1-o2;
            }
        });
        for(int i:integers){
            System.out.print(i);
            System.out.print(' ');
        }


    }
}
  • 原理 其底层调用了Arrays.sort()

List 中sort(Comparator<? super E> c)

  • 实现demo
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner input  = new Scanner(System.in);
        Integer integer = input.nextInt();
        List<Integer> integers = new ArrayList<>();
        for (int i=0; i< integer; i++){
            integers.add(input.nextInt());

        }
        integers.sort(new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o1-o2;
            }
        });
        for(int i:integers){
            System.out.print(i);
            System.out.print(' ');
        }


    }
}

Arrays.parallelSort()

  • 重载

image.png

  • 实现demo
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner input  = new Scanner(System.in);
        Integer integer = input.nextInt();
        Integer[] integers = new Integer[integer];
        for (int i=0; i< integer; i++){
            integers[i] = input.nextInt();

        }
        Arrays.parallelSort(integers, 0, integers.length, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o1 - o2;
            }
        });
        for(int i:integers){
            System.out.print(i);
            System.out.print(' ');
        }


    }
}