Java:如何按大小对多个ArrayList进行排序?
我有9个不同的Java:如何按大小对多个ArrayList进行排序?,java,sorting,arraylist,Java,Sorting,Arraylist,我有9个不同的ArrayList,我想列出前5个 我正在考虑按大小对那些数组列表进行排序 有可能吗?如果是,我怎样才能做到 经过几次尝试,我终于让它工作了,只想与大家分享 最好获取arraylist的大小并将其添加到大arraylist中 // creates an ArrayList that holds ArrayLists List allTheLists = new ArrayList(); allTheLists.add(pbaustraliaList.size()); allT
ArrayList
,我想列出前5个
我正在考虑按大小对那些数组列表进行排序
有可能吗?如果是,我怎样才能做到
经过几次尝试,我终于让它工作了,只想与大家分享
最好获取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));
}
//创建保存ArrayList的ArrayList
列出所有列表=新建ArrayList();
添加(pbaustraliaList.size());
添加(pbotherList.size());
添加(pbunitedStatesList.size());
添加(pbunitedKingdomList.size());
添加(pbchinaList.size());
添加(pbgermanyList.size());
添加(pbindiaList.size());
添加(pbjapanList.size());
allTheLists.add(pbsingaporeList.size());
Comparator Comparator=Collections.reverseOrder();
集合。排序(所有列表、比较器);
//ArrayList的显示元素
System.out.println(“按降序排序后的ArrayList元素:”);
对于(int i=0;i而言,您可以执行以下操作:
// 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
}
});
你也可以这样做
public static <T> List<List<T>> sort(List<List<T>> list) {
list.sort((xs1, xs2) -> xs1.size() - xs2.size());
return list;
}
公共静态列表排序(列表){
list.sort((xs1,xs2)->xs1.size()-xs2.size());
退货清单;
}
例如,您想先获得最短的列表,然后获得最长的列表?最长的列表。刚才看到了justin的一个示例。我将首先尝试。谢谢大家=)+1,但我会使用列表而不是ArrayList作为类型参数。@pcjuzer,谢谢。我也会的。但这是根据问题的需要量身定制的。将ArrayList
的所有实例更改为List
在这种特定情况下同样有效,但也更具可扩展性,并避免了原始类型警告。
public static <T> List<List<T>> sort(List<List<T>> list) {
list.sort((xs1, xs2) -> xs1.size() - xs2.size());
return list;
}