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();
}
}