我想轉換爲設置爲一個數組。我希望它存儲放置在其中的元素的插入順序。SharedPreferences是否將傳遞的Set <T>複製到另一個類型?
我正在構建的集合被傳入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 !
看來,在內部,它複製傳遞的數據爲另一種類型集...
我也嘗試過其他的toArray(T [])方法,用沒有成功。
我做錯了什麼?
嘗試看看是否這將表現爲預期。 [docs](http://docs.oracle.com/javase/6/docs/api/java/util/LinkedHashSet.html)表示迭代應該按照插入元素的順序,但不會說任何內容關於該方法。 –