kotlin 中A集合的对象被重新添加至B新的集合改变B新集合对象里面的字段–A集合的对象字段都会改变得问题修改
解决方案:
使用下面的方法copy A集合 返回一个新的集合,然后在新的集合中处理,就不会改变A集合里面的内容。
/**
* list 深拷贝
*/
fun <T> deepCopyList(srcList: List<T>): List<T>? {
val byteOut = ByteArrayOutputStream()
try {
val out = ObjectOutputStream(byteOut)
out.writeObject(srcList)
val byteIn = ByteArrayInputStream(byteOut.toByteArray())
val inStream = ObjectInputStream(byteIn)
return inStream.readObject() as List<T>
} catch (e: IOException) {
e.printStackTrace()
} catch (e: ClassNotFoundException) {
e.printStackTrace()
}
return null
}