ArrayList 获取另一个 ArrayList 的值
ArrayList get value of another ArrayList
我对 ArrayList
有疑问。我有 2 个 ArrayList
,它们是依赖关系。
class MainActivity : AppCompatActivity() {
var arrayList1 = arrayListOf<String>()
var arrayList2 = arrayListOf<String>()
lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
clickOnButton()
arrayList1 = arrayListOf<String>("a", "b", "c")
arrayList2 = arrayList1
arrayList2.clear()
println("ARRAYLIST: $arrayList1") //return me empty []
}
我想保留 arrayList1
中的值。我该怎么做?
你可以使用这个功能:
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>
}
它用于深度克隆,但它会起作用。但是您也可以使用普通的 for 循环:
for (i in arrayList1) {
arrayList2.add(i)
}
您可以像这样用旧的数组列表元素创建一个新的数组列表:
arrayList1 = arrayListOf<String>("a", "b", "c")
arrayList2 = arrayListOf(arrayList1)
arrayList2.clear()
println("ARRAYLIST: $arrayList1") // will print [a, b, c]
我对 ArrayList
有疑问。我有 2 个 ArrayList
,它们是依赖关系。
class MainActivity : AppCompatActivity() {
var arrayList1 = arrayListOf<String>()
var arrayList2 = arrayListOf<String>()
lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
clickOnButton()
arrayList1 = arrayListOf<String>("a", "b", "c")
arrayList2 = arrayList1
arrayList2.clear()
println("ARRAYLIST: $arrayList1") //return me empty []
}
我想保留 arrayList1
中的值。我该怎么做?
你可以使用这个功能:
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>
}
它用于深度克隆,但它会起作用。但是您也可以使用普通的 for 循环:
for (i in arrayList1) {
arrayList2.add(i)
}
您可以像这样用旧的数组列表元素创建一个新的数组列表:
arrayList1 = arrayListOf<String>("a", "b", "c")
arrayList2 = arrayListOf(arrayList1)
arrayList2.clear()
println("ARRAYLIST: $arrayList1") // will print [a, b, c]