gpt4 book ai didi

Kotlin 编辑列表

转载 作者:IT老高 更新时间:2023-10-28 13:41:16 29 4
gpt4 key购买 nike

在 Kotlin 中编辑不可变 List 的最佳方法是什么?

我知道 List 实际上并不是不可变的,但是如果我将 List 传递给一个函数并且我需要整个列表减去一个元素,那么是有支持的方法来处理吗?如果我希望整个列表带有一个附加元素怎么办?

最佳答案

如果您自己创建列表,而不是调用 listOf("foo", "bar") 调用 mutableListOf("foo", "bar") 来获取 MutableList 的实例。

如果你得到列表,例如作为方法的参数,在其上调用 toMutableList() 以获得可变的copy

或者使用许多内置扩展方法之一,例如 map()filter() 来获得一个 new 列表修改过的元素。例如,要获取没有前 n 个元素的列表,请使用 drop(n)。要仅获取前 n 个元素,请调用 take(n)Here您可以找到更多内置的扩展方法。

如果您需要连接两个列表,只需像这样使用加号运算符:val newList = list1 + list2

请注意,修改作为方法参数的列表可能会产生代码异味。这就是所有内置方法都返回副本的原因。还有你的假设

I understand that List is not actually immutable

错了。如您所见here ,如果您在没有参数的情况下调用 listOf(),标准库将返回一个不可变的空列表。

在 Java 中,List 接口(interface)在默认情况下是可变的,当您尝试修改不可变列表(例如通过调用 Arrays.asList()。这就是为什么在 Kotlin 中情况正好相反。

关于Kotlin 编辑列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30496950/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com