请问SharedPreferences文件中每项是如何排列的?

有一个SharedPreferences的XML文件内容如下:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
    <string name="三">3</string>
    <string name="四">4</string>
    <string name="九">9</string>
    <string name="七">7</string>
    <string name="一">1</string>
    <string name="八">8</string>
    <string name="二">2</string>
    <string name="五">5</string>
    <string name="六">6</string>
</map>

 

我是有按照一二三四这样的顺序一项一项map.put()加上去的.结果储存时就变成以上那样,而再读出来再赋值到activity后就就乱了。

请问该如何能让他按原来的顺序储存好?

sharedpreference是哈希表的结构,内部数据的顺序由哈希函数和分配的内存决定。

 

想要存储顺序的话你可以用key来代替顺序,取出之后排序就可以;也可以将对象序列化后存储,用的时候反序列化一下;再或者选用别的存储方式,比如数据库或者文件存储什么的。

map哈希表是不确保顺序的,你可以使用其他对象来实现。list,treeset,stack等都可以确保顺序。

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y