gpt4 book ai didi

java - 没有获得相同顺序的 ArrayList

转载 作者:行者123 更新时间:2023-12-02 04:04:38 25 4
gpt4 key购买 nike

我将一个数组列表分配给另一个数组列表,并将其存储在 SharedPreferences 中。问题是从 SharedPreferences 获取数组列表时。 arraylist 的顺序不同,即存储在索引上的值在获取的 arraylist 中不同。

我使用以下代码进行存储:在这里,我是 qarrayoff arraylist 到 list1。打印 list1 的元素时,它的顺序与 qarrayoff

中的顺序不同
ArrayList<String> list1 = new ArrayList<String>();
list1.addAll(qarrayoff);// fetch the data

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
SharedPreferences.Editor edit = prefs.edit();
edit.putStringSet("SAVEDATA", new HashSet<String>(list1));
edit.commit();

我想要相同的顺序,即两个数组列表中的元素序列相同。如何实现?

最佳答案

您可以将 ArrayList 的内容转换为 JSONArray,并将其作为字符串保存在 SharedPreference 中。例如

 JSONArray jArray = new JSONArray(list1);
edit.putString("SAVEDATA",jArray.toString());

但是当你检索 JSONArray 时,你将不得不付出额外的努力来解析它。或者,您可以使用其索引作为键以及 ArrayList 的大小来存储每个单个条目。这样,要重建 ArrayList,您将必须循环 size 次,并使用循环索引作为检索条目的键

关于java - 没有获得相同顺序的 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34481873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com