我正在尝试将 as Set 转换为数组。我希望它存储放置在其中的元素的插入顺序。
我正在构造的集合被传递到SharedPreferences
putStringSet 方法中的一个对象。
我的代码:
Set<String> set = new LinkedHashSet<String>();
set.add(element.getTitle());
set.add(element.getMessage());
set.add(Boolean.toString(element.getSomeBoolOption()));
set.add(Long.toString(something));
// set to SharedPreferences
prefs.putStringSet("key", set);
when converting this to an array, the order is not preserved:
prefs.getStringSet("key").toArray();
// elements in data array are not ordered according to the insertion order !
似乎在内部,它将传递的数据复制到另一种类型的 Set...
我也尝试了其他 toArray(T[]) 方法,但没有成功。
我做错了什么?