关键词:
【中文标题】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<ArrayList>
的代码如下所示:
// 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<?>
在这种特定情况下同样有效,但也更具可扩展性并避免了原始类型警告。【参考方案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<Object>(自定义对象)进行排序。... 查看详情
如何按前缀整数值对 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来过滤一个数字的因子 查看详情