正如主题中所述,我有一张地图TreeMap<String, ArrayList<String>> map = new TreeMap<String, ArrayList<String>>();
,我想获取值的集合,然后按长度对其进行排序,ArrayList
并仅在控制台上打印超过 3 的值。
我做到了,它有效,但它很难看。我可以做得更好吗?
我的解决方案:
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);
}