0
如主題中所述,我已獲得地圖TreeMap<String, ArrayList<String>> map = new TreeMap<String, ArrayList<String>>();
,我想要獲取值的集合,然後按照ArrayList
的長度對其進行排序,並僅在控制檯上打印這些值其長度大於3.如何獲取TreeMap值的集合並對其進行排序
我做到了,它的工作原理但它很醜。我可以做得更好嗎?
我的解決辦法:
Object[] values = map.values().toArray();
Arrays.sort(values, new Comparator<Object>() {
@Override
public int compare(Object o1, Object o2) {
ArrayList<String> a1 = (ArrayList<String>) o1;
ArrayList<String> a2 = (ArrayList<String>) o2;
return -(a1.size() - a2.size());
}
});
for (Object o : values) {
ArrayList<String> list = (ArrayList<String>) o;
if (list.size() >= 3)
System.out.println(list.size() + ": " + (ArrayList<String>) o);
}
如果您只想打印長度大於3的數組列表,那麼爲什麼要排序呢? –
爲什麼'Object []'?你知道類型。它是'ArrayList'...... –
Fildor
我知道這個類型,當我投它它時,我得到一個異常......做對了。 – Yoda