java—如何对数组中的数字从大到小进行排序?

px9o7tmv  于 2021-07-09  发布在  Java
关注(0)|答案(3)|浏览(661)

我能把矩阵中的数字从小到大排序,但我不能把它们从大到小排序。请帮忙。。。

  1. int [] list = new int[4];
  2. System.out.println("Enter the numbers of array: ");
  3. for (int i=0; i<list.length; i++)
  4. list[i] = kbd.nextInt();
  5. for (int index=0; index<list.length; index++)
  6. {
  7. int minIndex = index;
  8. for (int i= index+1; i<list.length; i++)
  9. {
  10. if (list[i] < list[minIndex])
  11. minIndex = i;
  12. }
  13. int temp = list[index];
  14. list[index] = list[minIndex];
  15. list[minIndex] = temp;
  16. }
  17. System.out.println("Numbers after sorting: ");
  18. for (int j : list) System.out.print(j + " ");
nukf8bse

nukf8bse1#

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

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

slmsl1lt2#

  1. import java.util.Arrays;
  2. import java.util.Comparator;
  1. Integer[] array = ...
  2. Arrays.sort( array, Comparator.reverseOrder() );

现在arry中的元素被排序

jdzmm42g

jdzmm42g3#

  1. public static void main(String... args) {
  2. int[] arr = new int[20];
  3. Random random = new Random();
  4. for (int i = 0; i < arr.length; i++)
  5. arr[i] = random.nextInt(10);
  6. System.out.println(Arrays.toString(arr));
  7. int[] reverseSortedArr = Arrays.stream(arr).boxed().sorted(Comparator.reverseOrder()).mapToInt(i -> i).toArray();
  8. System.out.println(Arrays.toString(reverseSortedArr));
  9. }

输出:

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

相关问题