存储链表的简单方法



嗨,我目前正在开发一个Android应用程序,当用户从应用程序进程中终止该应用程序时,我需要存储一个LinkedList。我已经研究了这个问题——在Android应用程序中保存LinkedList的简单方法?

接受的答案似乎不起作用,AndroidStudio抱怨说,它期望的是数组列表,而不是链表。我意识到这个问题已经存在3年了,在那段时间里肯定发生了什么变化,它才不起作用。

链表可以存储在捆绑包中吗?或者有人有更好的方法让我的LinkedList持久化吗?

干杯

正如我在评论中提到的,您将无法将LinkedList保存到捆绑包中,但您可以将LinkedList转换为ArrayList以保存它,然后在再次将其加载到应用程序中时将其转换回。ArrayListLinkedList的构造函数接受Collection,并将按照迭代器返回元素的顺序添加元素(即LinkedList的FIFO)

public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    ArrayList<MyObject> listToSave = new ArrayList<MyObject>(myLinkedList);
    outState.putParcelableArrayList("key", listToSave);
}
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (savedInstanceState != null) {
        ArrayList<MyObject> loadedList = savedInstanceState.getParcelableArrayList("key");
        myLinkedList = new LinkedList<MyObject>(loadedList);
    }
}

相关内容

  • 没有找到相关文章

最新更新