HashMap where the order of keys is important
我使用哈希图来存储成对的集合,但我还必须确保从第一个JSON序列化(从PHP客户端)到Java哈希映射集浏览,密钥的顺序将是相同的。
1 2 3 4 5 6 7 8 9 10 11 12 | //import com.google.gson.Gson; //import com.google.common.base.Joiner; String s ="{"durant":"kevin", "james":"lebron","harden":"james","westbrook":"russel"}"; System.out.println(s); Gson gson = new Gson(); Type typeOfMap = new TypeToken<Map<String, String>>() {}.getType(); Map<String, String> m = gson.fromJson(s, typeOfMap); List<String> entries = new ArrayList< String>(m.keySet()); //Collections.sort(entries); System.out.println(entries); System.out.println(m.entrySet()); System.out.println( Joiner.on(",").withKeyValueSeparator("").join(m) ); |
它似乎适用于小的值集,而不需要再次排序(这里按字母顺序排列键),但它是一种可靠的方法吗?JSON字符串和地图浏览之间的顺序可以改变吗?
编辑:也许Linkedhashmap更能保持秩序?
您可以查看此问题,以便:如何在哈希表或哈希表中排序Java项目?
给你一个更清晰的画面…