2
可以說我有具有以下結構的數據。排序地圖的地圖,即在java中的嵌套地圖
//map1 //map2 //map3
Fruit-------->Apple--------->Green Apple------->4
Red Apple--------->5
Yellow Apple------>6
Total------------->15
Cherry-------->Red Cherry-------->5
Green Cherry------>3
Total------------->8
Vegetable----->Capsicum----->Green Capsicum---->5
Red Capsicum------>7
Yellow Capsicum--->3
Total------------->15
換句話說,我有
Map<String, Map<String, Map<String, Long>>>
我想通過值最裏面的地圖(MAP3)和中間地圖(MAP2)的條目「總」的MAP3值排序。
我知道我們通常可以按照以下方式按照值排序地圖。
import java.util.*;
public class MapUtil
{
public static <K, V extends Comparable<? super V>> Map<K, V>
sortByValue(Map<K, V> map)
{
List<Map.Entry<K, V>> list =
new LinkedList<Map.Entry<K, V>>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<K, V>>()
{
public int compare(Map.Entry<K, V> o1, Map.Entry<K, V> o2)
{
return (o1.getValue()).compareTo(o2.getValue());
}
});
Map<K, V> result = new LinkedHashMap<K, V>();
for (Map.Entry<K, V> entry : list)
{
result.put(entry.getKey(), entry.getValue());
}
return result;
}
}
但是,這裏的值是一個很長的,而不是地圖。我正在研究這個問題,我認爲這可以是瞭解更多關於地圖的好方法。任何想法或建議如何實現?
你是什麼意思的「排序」,地圖沒有秩序,所以排序沒用 - 或者你想顯示的信息排序? – Smutje
是的,我想顯示信息排序。 –
@NimChimpsky我已經經歷過這個問題。它沒有幫助。 –