如何对 List<Integer> 进行排序?

44

我有一些代码并使用了列表来存储数据。 我想要对其中的数据进行排序,是否有任何方法可以排序数据,还是必须通过比较所有数据来手动排序?

import java.util.ArrayList; 
import java.util.List;

public class tes
{
    public static void main(String args[])
    {
        List<Integer> lList = new ArrayList<Integer>();
        lList.add(4);
        lList.add(1);
        lList.add(7);
        lList.add(2);
        lList.add(9);
        lList.add(1);
        lList.add(5);
        for(int i=0; i<lList.size();i++ )
        {
            System.out.println(lList.get(i));
        }
    }
}

8
如果您想按降序排序,您需要指定一个自定义比较器。顺便说一下,在Google上搜索“java sort list”将比在这里提问更快地给出结果。Collections.sort(lList);的翻译是:对lList进行排序。 - Alexis C.
7个回答

57

您可以使用Collections来对数据进行排序:

import java.util.Collections;
import java.util.ArrayList;
import java.util.List;

public class tes
{
    public static void main(String args[])
    {
        List<Integer> lList = new ArrayList<Integer>();

        lList.add(4);       
        lList.add(1);
        lList.add(7);
        lList.add(2);
        lList.add(9);
        lList.add(1);
        lList.add(5);

        Collections.sort(lList);

        for(int i=0; i<lList.size();i++ )
        {
            System.out.println(lList.get(i));
        }

    }
}

52

升序:

 Collections.sort(lList); 

倒序:

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

5
使用Collections类API进行排序。
Collections.sort(list);

3
您正在使用列表,具体是ArrayList。ArrayList还实现了Collection接口。Collection接口有一个sort方法,用于按升序对集合中的元素进行排序。这将是您情况下最快、可能也是最好的方法。
按升序对列表进行排序可以通过以下默认操作执行:
Collections.sort(list);

对一个列表进行降序排序可以采用以下方法:

Collections.reverse(list);

根据这些事实,您的解决方案必须按照以下方式编写:
public class tes 
{
    public static void main(String args[])
    {
        List<Integer> lList = new ArrayList<Integer>();
        lList.add(4);
        lList.add(1);
        lList.add(7);
        lList.add(2);
        lList.add(9);
        lList.add(1);
        lList.add(5);

        Collections.sort(lList);
        for(int i=0; i<lList.size();i++ )
        {
            System.out.println(lList.get(i));
        }
     }
}

关于集合的更多信息,您可以在这里阅读。


3

只需在此处使用Collections.sort(yourListHere)进行排序。

您可以从这里了解有关Collections的更多信息。


2

按升序排序:

Collections.sort(lList);

并且逆序排列:

Collections.reverse(lList);

6
Collections.reverse(lList); 只会将列表中的元素反转,而不会按降序排序。 - Alexis C.

0

您可以使用 Collections 类中的实用程序方法: public static <T extends Comparable<? super T>> void sort(List<T> list) 来进行排序。

public static <T> void sort(List<T> list,Comparator<? super T> c)

请参考 ComparableComparator 接口以获得更多关于对象排序的灵活性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接