【发布时间】:2023-02-06 02:58:09
【问题描述】:
解决算法任务并遇到一个我以前没有注意的有趣情况。
这是例子:
val testList1 = mutableListOf<String>()
testList1.add("f")
testList1.add("n")
Toast.makeText(this, testList1.size.toString(), Toast.LENGTH_SHORT).show()
在此代码中,我的 toast 将返回大小 2。这是可以预期的。 但让我们举个例子:
val testList2 = mutableListOf(mutableListOf<String>())
testList2.add(mutableListOf("sf", "fgs"))
testList2.add(mutableListOf("sw", "fgg"))
Toast.makeText(this, testList2.size.toString(), Toast.LENGTH_SHORT).show()
这里的 toast 显示 size = 3,即使我添加了 2 个元素(2 个列表)。因此,在实例化时它会添加 1 个 emptyList 作为第一个元素。
解决这个问题不是什么大问题,我们可以:
var finalList = testList2.removeIf { it.isEmpty() }
但我很好奇为什么会这样。还有什么好的方法可以避免它。如果可能的话想多了解一点
【问题讨论】: