最近写的项目中使用了SparseIntArray替换HashMap<Integer,Integer>来优化性能 ,通过Intent传递时SparseIntArray需要实现Serializable接口
import android.util.SparseIntArray;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
/**
* Created by liquan on 2016/5/22.
*/
public class SparseParcelableArray extends SparseIntArray implements Serializable {
private static final long serialVersionUID = 1L;
private void writeObject(ObjectOutputStream oos) throws IOException {
Object[] data = new Object[size()];
for (int i=data.length-1;i>=0;i--){
Object[] pair = {keyAt(i),valueAt(i)};
data[i] = pair;
}
oos.writeObject(data);
}
private void readObject(ObjectInputStream ois) throws IOException, ClassNotFoundException {
Object[] data = (Object[]) ois.readObject();
for (int i=data.length-1;i>=0;i--){
Object[] pair = (Object[]) data[i];
this.append((Integer)pair[0],(Integer)pair[1]);
}
return;
}
}