如何对 List<Integer> 进行排序? [复制]

Posted

技术标签:

【中文标题】如何对 List<Integer> 进行排序? [复制]【英文标题】:How to sort List<Integer>? [duplicate] 【发布时间】:2013-12-29 08:43:26 【问题描述】:

我有代码并且我使用列表来存储数据。 我想对它的数据进行排序,那么有什么方法可以对数据进行排序还是必须通过比较所有数据来手动排序?

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));
        
    

【问题讨论】:

Collections.sort(lList);。如果要按降序排序,则应精确自定义比较器。顺便说一句,Google 上的 “java 排序列表” 确实会比在这里提问更快地为您提供结果。 【参考方案1】:

您可以使用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));
        

    

【讨论】:

【参考方案2】:

升序:

 Collections.sort(lList); 

降序:

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

【讨论】:

【参考方案3】:

使用 Collections 类 API 进行排序。

Collections.sort(list);

【讨论】:

【参考方案4】:

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

您可以从here 阅读更多关于集合的信息。

【讨论】:

【参考方案5】:

按升序排序:

Collections.sort(lList);

对于相反的顺序:

Collections.reverse(lList);

【讨论】:

Collections.reverse(lList); 只会反转列表中的元素,而不是按降序排序。【参考方案6】:

您正在使用列表,具体的 ArrayList。 ArrayList 还实现了 Collection 接口。 Collection 接口具有 sort 方法,该方法用于按升序对指定 Collection 列表中存在的元素进行排序。这将是您案件的最快且可能是最好的方法。

可以通过这种方式将列表按升序排序作为默认操作:

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));
        
     

有关收藏的更多信息,您可以阅读here。

【讨论】:

【参考方案7】:

您可以在Collections 类中使用实用方法 public static &lt;T extends Comparable&lt;? super T&gt;&gt; void sort(List&lt;T&gt; list)

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

请参阅ComparableComparator 接口以更灵活地对对象进行排序。

【讨论】:

以上是关于如何对 List<Integer> 进行排序? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何取出list数据放入map

如何从 List<Integer> 中获取 IntStream?

Java static List的问题

Java List排序

我如何在 java [重复] 中从 int[] 转换为 List<Integer>

List<Map<String, Integer>> 遍历相加