use*_*596 12 java sorting arraylist
我有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));
}
Run Code Online (Sandbox Code Playgroud)
jjn*_*guy 27
你能做的是以下几点:
// 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
}
});
Run Code Online (Sandbox Code Playgroud)
这将按列表的长度对列表列表进行排序.排序列表中的第一个元素将是最长列表,最后一个元素将是最短列表.
然后,您可以遍历前5个列表以查看前5个列表.
一些链接供参考:
根据您的ArrayLists存储方式,创建的代码List<ArrayList>看起来像这样:
// creates an ArrayList that holds ArrayLists
List<ArrayList> allTheLists = new ArrayList<ArrayList>();
allTheLists.add(yourList1);
allTheLists.add(yourList2);
...
allTheLists.add(yourList9);
Run Code Online (Sandbox Code Playgroud)