Android List深度复制

在保持原有的数据不变的情况下,修改复制的list列表,而不影响原list。

public static <E> List<E> deepCopy(List<E> src) {
    try {
        ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
        ObjectOutputStream out = new ObjectOutputStream(byteOut);
        out.writeObject(src);

        ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray());
        ObjectInputStream in = new ObjectInputStream(byteIn);
        @SuppressWarnings("unchecked")
        List<E> dest = (List<E>) in.readObject();
        return dest;
    } catch (Exception e) {
        e.printStackTrace();
        return new ArrayList<E>();
    }
}

List<E> 需要 E 对象实现接口 Serializable,否则会报错。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容