kotlin 从列表中删除最后一定数量的元素

9ceoxa92  于 2022-12-23  发布在  Kotlin
关注(0)|答案(3)|浏览(403)

我有一个ArrayList的值,我根据特定的条件添加到其中。我有一个Button,称为back,其功能是清除ArrayList中最后添加的元素。我使用counter变量跟踪添加了多少元素。
我有一个 backbone 函数,其中itemList是我想从其中删除元素的列表,howManyElementsToRemove是我想从解析列表中删除的元素的数量(counter)。我已经查看了使用itemList.remove()时得到的函数选项,但我不知道哪一个是最好的选项。

private fun removeElements(itemList: ArrayList<Int>, howManyElementsToRemove: Int){

        //I am not sure how to approach this
    }

任何帮助或建议将不胜感激。

siotufzp

siotufzp1#

一个简单的for循环(* 或repeat*)就足够了:

private fun removeElements(list: ArrayList<Int>, numberOfRemovals: Int){
    for(count in 0 until numberOfRemovals){
        list.removeLast() //Or as Ben Shmuel mentioned, removeLastOrNull()
    }
}

我们可以使用以下输入来测试:

val primes = arrayListOf(2, 3, 5, 7, 11, 13, 17, 23)
val numberOfRemovals = 3
removeElements(primes, numberOfRemovals)
println(primes)

结果:[2, 3, 5, 7, 11]

kt06eoxx

kt06eoxx2#

如果只想删除最后添加的,可以使用removeLast()removeLastOrNull()
例如:

val itemList = arrayListOf(1, 2, 3, 4, 5, 6, 7, 8)
val howManyElementsToRemove = 3
 
 repeat(howManyElementsToRemove){itemList.removeLastOrNull()}
 
 print(itemList)
//[1, 2, 3, 4, 5]

如果将removeLast()howManyElementsToRemove一起使用,而howManyElementsToRemove大小大于itemList大小,则可能会得到NoSuchElementException("List is empty.")

myzjeezk

myzjeezk3#

如果您每次都跟踪列表的大小,那么最好的选择是:

itemList.subList(prevSize, curSize).clear()

其中curSize =列表的当前大小,prevSize =以前的大小

相关问题