gpt4 book ai didi

java - SharedPreferences 是否将传递的 Set 复制到另一种类型?

转载 作者:行者123 更新时间:2023-11-30 03:34:34 25 4
gpt4 key购买 nike

我正在尝试将 as Set 转换为数组。我希望它存储放置在其中的元素的插入顺序。

我正在构建的集合被传递到 putStringSet 方法中的 SharedPreferences 对象。

我的代码:

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[]) 方法,但没有成功。

我做错了什么?

最佳答案

如果您查看 JavaDoc for LinkedHashSet它指出:

Hash table and linked list implementation of the Set interface, with predictable iteration order.

这里的重点是“迭代顺序”。你应该使用

set.iterator()

按插入顺序获取元素。

干杯,

关于java - SharedPreferences 是否将传递的 Set<T> 复制到另一种类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16828922/

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