如何在kotlin中获取mutableList的mutableList?

Posted

技术标签:

【中文标题】如何在kotlin中获取mutableList的mutableList?【英文标题】:How to get mutableList of mutableList in kotlin? 【发布时间】:2021-10-12 13:32:42 【问题描述】:

我正在尝试在 kotlin 中获取 LatLng 对的 mutableList 的 mutableList。下面是我的代码。 当函数 onPauseButtonClicked() 被调用时,我得到 locationlist 变量中的值,该变量是 LatLng 对的 mutableList。但我无法将值添加到 locationlists 变量,这是一个 mutableListOf(locationList) 。该值显示为空。代码有什么问题。


 private var locationList = mutableListOf<LatLng>()

 private var locationlists = mutableListOf(locationList)

/**
This is function where locationlists is called
*/

 private fun onPauseButtonClicked()

        locationlists.add(locationList)

//        Toast.makeText(requireContext() ,"$locationList", Toast.LENGTH_SHORT).show()

        val c= locationlists[0]

        Toast.makeText(requireContext() ,"$c", Toast.LENGTH_SHORT).show()



【问题讨论】:

【参考方案1】:

初始化使用时

private val locationLists = MutableList<MutableList<LatLang>>(0)mutableListOf()

【讨论】:

您能详细说明一下,因为您是只添加 1 个对象,还是以其他方式填充?去哪里? 当我locationlists.add(locationList) 时,旧值会被删除。我只能在locationlists 中检索新添加的值。 你的减速范围是对的吗? , 因为add() 追加到结尾 @user16493824 您的问题需要像@Anshul 所问的那样详细说明。你能提供更多关于从locationList 中附加/删除的内容吗?存储一个可变列表,在插入locationLists 后将被进一步修改,这似乎是问题的可能根源。如果不需要可变后插入,请考虑在插入 locationLists 之前制作不可变副本。 我的LatLng 变量中有LatLng 对数组作为mutableListOf&lt;LatLng&gt;()inside 我的locationList 变量。我正在尝试将locationList 添加到另一个变量locationlists 现在是`val locationlists = MutableList>(0)mutableListOf()(array of array). But When I run the code I am only able to retrieve values in locationlists[size-1]`。其他值被删除。【参考方案2】:

add 会将 MutableList 添加到列表的末尾。但是,当您调用 mutableListOf(locationList) 时,您已经将一个空的 MutableList 作为第一个元素。在调试器中很容易验证,您的位置列表将包含两个元素,即使您只调用一次 add

因此,正确的方法是使用 MutableList 的空列表来初始化 locationlists

var locationlists =  mutableListOf<MutableList<LatLng>>()

【讨论】:

以上是关于如何在kotlin中获取mutableList的mutableList?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 kotlin 中的意图传递对象的 MutableList

如何将字符串从共享首选项转换为 MutableList<LatLng> 对以在 kotlin 中绘制折线?

Kotlin集合操作总结 ( List 集合 | MutableList 集合 | List 集合遍历 | Set 集合 | MutableSet 集合 | Map 集合 | 可变 Map集合 )

Kotlin集合操作总结 ( List 集合 | MutableList 集合 | List 集合遍历 | Set 集合 | MutableSet 集合 | Map 集合 | 可变 Map集合 )

kotlin MutableList的遍历

Kotlin集合操作 ② ( MutableList 可变列表集合 | 修改 MutableList 集合的 mutator 函数 )