如何序列化HashSet

时间:2010-11-29 19:53:41

标签: java android

我正在构建一个Android应用程序,我想添加一个历史记录功能。我听说我可以序列化一个列表,以便能够保存和检索数据,而不是使用数据库,我不知道它是如何工作的,所以我来这里寻求建议,有什么地方我可以开始这个。一些好的链接可能很有用。

由于

3 个答案:

答案 0 :(得分:17)

HashSet实施Serializable。因此,只要您放入哈希集中的所有对象也实现Serializable(以及其中的所有对象等),您就可以将其序列化为任何其他正常的可序列化Java对象。

答案 1 :(得分:2)

你不应该以更加有效的方式使用serializable,android实现parcelables。问题是你必须自己定义如何包裹对象,但实际上并不难。

简单示例:

public class MyParcelable implements Parcelable {
     private int mData;

     public int describeContents() {
         return 0;
     }

     public void writeToParcel(Parcel out, int flags) {
         out.writeInt(mData);
     }

     public static final Parcelable.Creator<MyParcelable> CREATOR
             = new Parcelable.Creator<MyParcelable>() {
         public MyParcelable createFromParcel(Parcel in) {
             return new MyParcelable(in);
         }

         public MyParcelable[] newArray(int size) {
             return new MyParcelable[size];
         }
     };

     private MyParcelable(Parcel in) {
         mData = in.readInt();
     }
 }

如果你想保存一个Hashset,你只需要确保Hash中的对象也是可以分配的。

如果您觉得这太麻烦了,那么Nailuj之前发布的答案是正确的。

答案 2 :(得分:0)

也许xstream可能会有所帮助。

序列化api - http://x-stream.github.io/