我正在尝试根据字母值对哈希映射进行排序,该值本身存储在另一个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]
如何进行?
答案 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)
如果您希望基于字母值的排序地图,则可以使用TreeMap
。 TreeMap
是有序映射,表示可以对键的顺序进行排序,以及在遍历键时进行排序。
TreeMap<String, HashMap<String,String>> map = new TreeMap<String, HashMap<String,String>>();
然后使用Comparator
界面对值进行排序。