需求是这样的:
现在有一个list,里面n个map,每个map都有m大小的key-value,且每个map的key的顺序都是一样的,比如说map1的第x个key是y,那么mapn的第x个key也是y。
现在要对list中的每个map进行排序,要按n个map中的相同的key的value值的和
的顺序排序。
举例:比如3个map,都有key1,key2,如果map1.get(key2) + map2.get(key2) + map3.get(key2) > map1.get(key1) + map2.get(key1) + map3.get(key1)
,
那么就要将这三个map中的key的顺序按照key2,key1的顺序排列,原先每个map中key的顺序是key1,key2。
怎么来实现呢
1.先算出所有key的和的排序
2.對原來的list進行遍歷,根據key對應的順序,之後放到一個list中
有序
Map
可以用TreeMap
來實現,所以我在範例中用的java.util.TreeMap
。一般
SortedMap
都可以用一個Comparator
作為建構參數,那麼你可以自己寫一個Comparator
來實現排序,以下就是範例