Java:如何按大小对多个 ArrayList 进行排序?

     2023-02-25     149

关键词:

【中文标题】Java:如何按大小对多个 ArrayList 进行排序?【英文标题】:Java: How do I sort multiple ArrayList by their size? 【发布时间】:2011-03-29 11:34:55 【问题描述】:

我有 9 个不同的ArrayList,我想要一个前 5 名的列表。

我正在考虑按大小对ArrayLists 进行排序。

可以这样做吗?如果是这样,我该如何实现?


试了几次终于搞定了,分享给大家。

最好能得到arraylist的大小,加入到大arraylist中

// creates an ArrayList that holds ArrayLists 
List allTheLists = new ArrayList(); 
allTheLists.add(pbaustraliaList.size());
allTheLists.add(pbotherList.size()); 
allTheLists.add(pbunitedStatesList.size()); 
allTheLists.add(pbunitedKingdomList.size()); 
allTheLists.add(pbchinaList.size()); 
allTheLists.add(pbgermanyList.size()); 
allTheLists.add(pbindiaList.size()); 
allTheLists.add(pbjapanList.size()); 
allTheLists.add(pbsingaporeList.size()); 
Comparator comparator = Collections.reverseOrder();
Collections.sort(allTheLists,comparator);

//display elements of ArrayList    
System.out.println("ArrayList elements after sorting in descending order : ");    
for(int i=0; i<allTheLists.size(); i++)      
    System.out.println(allTheLists.get(i));   

【问题讨论】:

您想拥有,例如,最短的列表在前,最长的在后? 最长的第一个。刚刚看到贾斯汀的一个例子。我先试试。谢谢大家=) 【参考方案1】:

你可以做的是:

// this List of lists will need to contain 
// all of the ArrayLists you would like to sort
List<ArrayList> allTheLists; 
Collections.sort(allTheLists, new Comparator<ArrayList>()
    public int compare(ArrayList a1, ArrayList a2) 
        return a2.size() - a1.size(); // assumes you want biggest to smallest
    
);

这将按每个列表的长度对列表列表进行排序。排序列表中的第一个元素将是最长的列表,最后一个将是最短的列表。

然后,您可以遍历前 5 个列表以查看前 5 个是什么。

一些参考链接:

Sorting tutorial Collections Javadoc Comparator Javadoc

根据您存储ArrayLists 的方式,创建List&lt;ArrayList&gt; 的代码如下所示:

// creates an ArrayList that holds ArrayLists
List<ArrayList> allTheLists = new ArrayList<ArrayList>();
allTheLists.add(yourList1);
allTheLists.add(yourList2);
...
allTheLists.add(yourList9);

【讨论】:

+1,但我会使用 List 而不是 ArrayList 作为类型参数。 @pcjuzer,谢谢。我也会的。但这是根据问题的需要量身定制的。 ArrayList 的所有实例更改为List&lt;?&gt; 在这种特定情况下同样有效,但也更具可扩展性并避免了原始类型警告。【参考方案2】:

你也可以这样做

public static <T> List<List<T>> sort(List<List<T>> list) 
        list.sort((xs1, xs2) -> xs1.size() - xs2.size());
        return list;
    

【讨论】:

如何使用多个排序标准对 ArrayList 进行排序?

】如何使用多个排序标准对ArrayList进行排序?【英文标题】:HowtosortanArrayListusingmultiplesortingcriteria?【发布时间】:2011-04-1121:55:08【问题描述】:我有一个包含Quote对象的数组列表。我希望能够按名称、变化和百分比变化按字母顺... 查看详情

如何按对象属性对 ArrayList 进行排序? [复制]

】如何按对象属性对ArrayList进行排序?[复制]【英文标题】:howtosortanArrayListbyitsobjectsproperties?[duplicate]【发布时间】:2012-08-0521:57:46【问题描述】:假设我有一个自定义对象的ArrayList,例如classfileOjbStringpath;Stringformat;intsize;intdatea... 查看详情

Java:如何将 ArrayList 拆分为多个小的 ArrayList?

】Java:如何将ArrayList拆分为多个小的ArrayList?【英文标题】:Java:howcanIsplitanArrayListinmultiplesmallArrayLists?【发布时间】:2011-02-2303:10:52【问题描述】:如何将一个ArrayList(size=1000)拆分为多个相同大小(=10)的ArrayList?ArrayList<Integer&g... 查看详情

按对象属性对对象的 ArrayList 进行排序

】按对象属性对对象的ArrayList进行排序【英文标题】:SortingArrayListofObjectsbyObjectattribute【发布时间】:2011-03-2112:40:45【问题描述】:我有一个对象的Arraylist。这些对象有一个属性或数据类型——“字符串”。我需要按该字符串对... 查看详情

在Java中按属性值对对象ArrayList进行排序

】在Java中按属性值对对象ArrayList进行排序【英文标题】:SortinganobjectArrayListbyanattributevalueinJava【发布时间】:2013-05-2100:47:42【问题描述】:我有ArrayListzombie,其中填充了一个名为Zombie的对象。Zombie具有属性health、x、y。如何使用... 查看详情

如何按字典顺序对 ArrayList 进行排序?

】如何按字典顺序对ArrayList进行排序?【英文标题】:HowdoIsortanArrayListlexicographically?【发布时间】:2011-03-0106:12:46【问题描述】:我正在尝试对表示卡片值的字符串数组列表进行排序。因此,有些卡片包含字母(“King”),而... 查看详情

java示例代码_按ArrayList的对象属性对其排序

java示例代码_按ArrayList的对象属性对其排序 查看详情

按字母顺序排序arraylist(不区分大小写)

】按字母顺序排序arraylist(不区分大小写)【英文标题】:Sortingarraylistinalphabeticalorder(caseinsensitive)【发布时间】:2011-08-1411:57:45【问题描述】:我有一个字符串数组列表names,其中包含人名。我想按字母顺序对数组列表进行排序... 查看详情

java示例代码_Java中按值(ArrayList)大小对地图排序

java示例代码_Java中按值(ArrayList)大小对地图排序 查看详情

如何按升序对 ArrayList<Object> 进行排序 android

】如何按升序对ArrayList<Object>进行排序android【英文标题】:HowtosortArrayList<Object>inAscendingorderandroid【发布时间】:2015-11-1614:29:52【问题描述】:我需要根据名称按升序对ArrayList&lt;Object&gt;(自定义对象)进行排序。... 查看详情

如何按前缀整数值对 ArrayList<String> 进行排序[重复]

】如何按前缀整数值对ArrayList<String>进行排序[重复]【英文标题】:HowtosortArrayList<String>bytheprefixedIntegervalue[duplicate]【发布时间】:2019-12-0408:39:15【问题描述】:如何搜索前面有数字值的排序数组列表,计划是我想对数字... 查看详情

java示例代码_按相同顺序对不同类型数据的2个ArrayList进行排序

java示例代码_按相同顺序对不同类型数据的2个ArrayList进行排序 查看详情

Groovy:如何按字符串长度顺序对 String:s 的 ArrayList 进行排序?

】Groovy:如何按字符串长度顺序对String:s的ArrayList进行排序?【英文标题】:Groovy:HowdoIsortanArrayListofString:sinlength-of-stringorder?【发布时间】:2010-10-1806:09:56【问题描述】:如何在Groovy中按字符串长度顺序对String中的ArrayList进行排... 查看详情

java示例代码_:如何将一个ArrayList拆分为多个小ArrayList

java示例代码_:如何将一个ArrayList拆分为多个小ArrayList 查看详情

如何对 ArrayList 进行排序? [复制]

】如何对ArrayList进行排序?[复制]【英文标题】:HowtosortArrayLists?[duplicate]【发布时间】:2012-10-0110:51:17【问题描述】:我有一些列表包含DataTime(Joda-time)类型的元素。如何按日期对它们进行排序?如果有人给出示例的链接,那就... 查看详情

在 Java 8 中使用 Lambda 对 ArrayList 进行排序

】在Java8中使用Lambda对ArrayList进行排序【英文标题】:SortingArrayListwithLambdainJava8【发布时间】:2014-07-0507:11:57【问题描述】:有人可以向我展示一个简单的示例,如何使用新的lambda语法在Java8中按字母顺序对ArrayList进行排序。【... 查看详情

java示例代码_在java中,如何合并两个不同大小的arraylist并创建一个新的arraylist

java示例代码_在java中,如何合并两个不同大小的arraylist并创建一个新的arraylist 查看详情

java示例代码_如何使用多个ArrayList来过滤一个数字的因子

java示例代码_如何使用多个ArrayList来过滤一个数字的因子 查看详情