根据值对Map内的HashMap进行排序

时间:2015-10-22 07:09:52

标签: java android sorting hashmap


我正在尝试根据字母值对哈希映射进行排序,该值本身存储在另一个Map中。

结构如下: Map<String, HashMap<String, String>>

我想根据HashMap里面的值对这个Map进行排序,这样就可以根据HashMap的值对所有完整的地图进行排序,以及HashMap。

- 的更新:

例如,如果我有类似的东西:

Map: abc Value: HashMap[EN, a]
Map: xyz Value: HashMap[DE, c]
Map: pqr Value: HashMap[PL, b]

然后在排序后应该是这样的:

Map: abc Value: HashMap[EN, a]
Map: pqr Value: HashMap[PL, b]
Map: xyz Value: HashMap[DE, c]

如何进行?

2 个答案:

答案 0 :(得分:5)

对值进行排序可能是一个坏主意,因为如果您更改值映射中的内容,它会认为排序变得不正确。

如果您真的想根据值进行排序,那么您需要创建另一个地图:

var endlist = [Coordinate]()

let data = try NSJSONSerialization.dataWithJSONObject(endlist , options: options)           
let string = NSString(data: data, encoding: NSUTF8StringEncoding)          
json["points"] = string

答案 1 :(得分:-1)

如果您希望基于字母值的排序地图,则可以使用TreeMapTreeMap是有序映射,表示可以对键的顺序进行排序,以及在遍历键时进行排序。

TreeMap<String, HashMap<String,String>> map = new TreeMap<String, HashMap<String,String>>();

然后使用Comparator界面对值进行排序。