亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何讓用戶按降序輸入?

如何讓用戶按降序輸入?

慕沐林林 2023-03-31 16:49:04
我希望用戶按降序輸入。升序輸出是正確的,但降序輸出不起作用。 public static void main(String[] argu){    int[] i = new int[10];    Scanner sc = new Scanner(System.in);    for (int j = 0; j<=9  ; j++) {        i[j] = Integer.parseInt(sc.nextLine());    }    Arrays.sort(i);    System.out.println(Arrays.toString(i));             Comparator comparator = Collections.reverseOrder();    Arrays.sort(i,Collections.reverseOrder());    System.out.println(Arrays.toString(i));
查看完整描述

4 回答

?
郎朗坤

TA貢獻1921條經驗 獲得超9個贊

您的行Arrays.sort(i,Collections.reverseOrder());不會編譯,因為數組不是集合。使用 aList而不是數組并像這樣使用它:


public static void main(String[] argu) {

    List<Integer> i = new ArrayList<>();

    Scanner sc = new Scanner(System.in);

    for (int j = 0; j <= 9; j++) {

        i.add(Integer.valueOf(sc.nextLine()));

    }


    System.out.println("Sorted:");

    Collections.sort(i);

    i.forEach(System.out::println);


    System.out.println("\nReversed:");

    Collections.sort(i, Collections.reverseOrder());

    i.forEach(System.out::println);

}


查看完整回答
反對 回復 2023-03-31
?
萬千封印

TA貢獻1891條經驗 獲得超3個贊

Arrays.sort(i, Collections.reverseOrder())不適用于原語。如果您需要使用上述方法進行排序,請嘗試將值讀取為Integernot int。

如果您需要使用原語,請使用一個簡單的比較器并將其傳遞給Arrays.sort()或使用如下所示的內容:
Collections.sort(i, (int a, int b) -> return (b-a));


查看完整回答
反對 回復 2023-03-31
?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

你可以嘗試使用Integer[]而不是int[]



查看完整回答
反對 回復 2023-03-31
?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

或者使用流:

i = Arrays.stream(i).boxed()
    .sorted(Comparator.reverseOrder())
    .mapToInt(Integer::intValue)
    .toArray()


查看完整回答
反對 回復 2023-03-31
  • 4 回答
  • 0 關注
  • 173 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號