list实现从大到小排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了list实现从大到小排序相关的知识,希望对你有一定的参考价值。

参考技术A public static void main(String[] args)

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

        //产生10以内的随机数

        int num = 10;

        for(int i=1;i<=num;i++)

            list.add(i);

       

        for(Object o : list)

            System.out.println(o);

       

        System.out.println("++++++++++++++++++++++++++++++++++++");

        Collections.sort(list, new Comparator<Integer>()

          @Override

          public int compare(Integer o1, Integer o2)

              if (o1> o2)

                  return -1;

              else if (o1 < o2)

                  return 1;

             

              return 0;

         

      );

        for(Object o : list)

            System.out.println(o);

       

   

如何将数组中的数字从大到小排序?

【中文标题】如何将数组中的数字从大到小排序?【英文标题】: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 + " ");

【问题讨论】:

【参考方案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;

【讨论】:

以上是关于list实现从大到小排序的主要内容,如果未能解决你的问题,请参考以下文章

在matlab中从大到小排序

请用sql实现查询出每个员工2019年10月份上班打卡次数,并按打卡次数从大到小排序卡次数从大到小排序?

任意输入5个整数,利用冒泡排序法排序(从大到小)

-课后作业)

实现三个数从大到小排序,下面的python代码有什么问题?

集合的排序(正序,倒序,从大到小排序)