Scanner有多次输入,且存在输入数字组成数组的情况 建议使用while(sc.hasNext()) 判断是否存在下次输入,并按业务录入数字组成数组

Arrays.sort方法可以对Integer数组 按Comparator自定义比较器执行排序,注意参数o1,o2, 左-右(o1-o2)是升序排序; 右-左(o2-o1)是降序排序;

题解源代码

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
   
        //有多次输入,且存在输入数字组成数组的情况
        while(sc.hasNext()){
            //第一行输入数组元素个数
             int arrCount = sc.nextInt();
            //第二行输入待排序的数组,每个数用空格隔开
            Integer[] arr = new Integer[arrCount];
            //录入 arrCount 个 数字,组成数组
            for(int i=0;i<arrCount;i++){
                arr[i] = sc.nextInt();
            }
            //第三行输入一个整数0或1。0代表升序排序,1代表降序排序
            int flagSort = sc.nextInt();
            
            if(flagSort==0){
                Arrays.sort(arr,new Comparator<Integer>(){
                    public int compare(Integer o1 ,Integer o2){
                        return o1-o2;
                    }
                });
            }
            if(flagSort==1){
                Arrays.sort(arr,new Comparator<Integer>(){
                    public int compare(Integer o1 ,Integer o2){
                        return o2-o1;
                    }
                });
            }
      
            for(Integer m : arr){
                System.out.print(m + " ");
            }
            break;
        }
        System.out.println();
  
    }
}