Java 使Gson按一定顺序序列化集合

Java 使Gson按一定顺序序列化集合,java,serialization,gson,Java,Serialization,Gson,我有一张这样的地图:map。映射的键是一个字符串,它是通过Gson序列化集生成的 我担心Gson可能并不总是将相同的Set序列化为相同的字符串(项目的顺序可能不同?) 如果我设置了并试图更新/删除该映射中的相应条目,这将导致问题 假设map的键必须是一个字符串,该字符串是由Gson序列化的Set。我想知道是否有办法强制Gson总是将相同的集序列化为相同的字符串。不,这是不可能的。哈希集中的顺序不同。如果您真的希望对它们进行排序,请使用ArrayList并创建自己的序列化程序 一种丑陋的方法可能是

我有一张这样的地图:
map
。映射的键是一个字符串,它是通过Gson序列化
生成的

我担心Gson可能并不总是将相同的
Set
序列化为相同的字符串(项目的顺序可能不同?)

如果我设置了
并试图更新/删除该映射中的相应条目,这将导致问题


假设map的键必须是一个字符串,该字符串是由Gson序列化的
Set
。我想知道是否有办法强制Gson总是将相同的
序列化为相同的字符串。

不,这是不可能的。哈希集中的顺序不同。如果您真的希望对它们进行排序,请使用ArrayList并创建自己的序列化程序

一种丑陋的方法可能是将键存储在一个ArrayList中,将值存储在另一个ArrayList中

但是问题仍然存在!!解析JSON对象时,JSON对象中的字段将不按顺序排列

所以,您不应该依赖于顺序并在HashMap或JSONObject中使用索引。相反,你应该使用钥匙