【问题标题】:How can I sort numbers from largest to smallest in an array?如何将数组中的数字从大到小排序?
【发布时间】:2021-07-14 22:06:00
【问题描述】:

我能够将矩阵中的数字从小到大排序,但我无法将它们从大到小排序。请帮忙...

int[] list = new int[4];

System.out.println("Enter the numbers of array: ");
for (int i = 0; i < list.length; i++)
    list[i] = kbd.nextInt();

for (int index = 0; index < list.length; index++) {
    int minIndex = index;
    for (int i = index + 1; i < list.length; i++) {
        if (list[i] < list[minIndex])
            minIndex = i;
    }
    int temp = list[index];
    list[index] = list[minIndex];
    list[minIndex] = temp;
}

System.out.println("Numbers after sorting: ");
for (int j : list) System.out.print(j + " ");

【问题讨论】:

    标签: java arrays list max min


    【解决方案1】:
    import java.util.Arrays;
    import java.util.Comparator;
    
    Integer[] array = ...
    Arrays.sort( array, Comparator.reverseOrder() );
    

    现在数组中的元素已排序

    【讨论】:

      【解决方案2】:
      public static void main(String... args) {
          int[] arr = new int[20];
          Random random = new Random();
      
          for (int i = 0; i < arr.length; i++)
              arr[i] = random.nextInt(10);
      
          System.out.println(Arrays.toString(arr));
          int[] reverseSortedArr = Arrays.stream(arr)
                  .boxed()
                  .sorted(Comparator.reverseOrder())
                  .mapToInt(i -> i)
                  .toArray();
          System.out.println(Arrays.toString(reverseSortedArr));
      }
      

      输出:

      [9, 0, 8, 1, 4, 7, 3, 6, 4, 6, 7, 6, 2, 3, 8, 0, 1, 3, 5, 2]
      [9, 8, 8, 7, 7, 6, 6, 6, 5, 4, 4, 3, 3, 3, 2, 2, 1, 1, 0, 0]
      

      【讨论】:

        【解决方案3】:

        你的方法很好。除以下内容外无需更改。您需要做的就是反转排序条件。请参阅以下代码段中的注释。

        for (int i = index + 1; i < list.length; i++) {
            if (list[i] < list[minIndex]) // change < to >
                minIndex = i;
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-01-30
          • 1970-01-01
          • 2021-11-10
          • 2012-04-16
          • 1970-01-01
          • 2021-06-25
          相关资源
          最近更新 更多