我需要克隆一個 Any 型別的 ArrayList ,它只包含字串和 Arraylists 只包含字串和 arrayLists ... 。淺拷貝對我不起作用,因為我需要克隆每個元素。我的想法是遍歷每個元素或將 ArrayList 轉換為 String ,然后再轉換回 ArrayList (使用字串中的逗號和括號)。知道如何更容易做到這一點嗎?(Java 的答案也很受歡迎,因為我認為它可以轉換為 Kotlin)
uj5u.com熱心網友回復:
您可以使用簡單的遞回方法來深度復制每個嵌套串列。這是一個使用 Java 流的演示:
List<?> deepCopy(List<?> list) {
return list.stream()
.map(e -> e instanceof List ? deepCopy((List<?>)e) : e)
.collect(Collectors.toList());
}
uj5u.com熱心網友回復:
fun cloned(arrayList: ArrayList<Any>): ArrayList<Any> {
return arrayList.map {
when (it) {
is ArrayList<*> -> cloned(it.toList() as ArrayList<Any>)
else -> it
}
} as ArrayList<Any>
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/411474.html
標籤:
