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我已经经历过这个问题。它没有帮助。 –