gpt4 book ai didi

java - 如何使用MutableList通过kotlin调用java来删除?

转载 作者:行者123 更新时间:2023-11-30 02:13:47 27 4
gpt4 key购买 nike

我有一个带有 Int 泛型的 MutableList,就像 MutableList 一样。我想知道如何正确使用kotlin调用java方法remove(int position)和remove(Integer object)?

public void remove(int position) {
if (this.list != null && this.list.size() > position) {
this.list.remove(position);
notifyDataSetChanged();
}
}

public void remove(T t) {
if (t != null && this.list != null && !this.list.isEmpty()) {
boolean removed = false;
try {
removed = this.list.remove(t);
} catch (Exception e) {
e.printStackTrace();
}

if (removed) {
notifyDataSetChanged();
}
}
}

最佳答案

kotlin.collections.MutableList 中总共有 4 种删除项目的方法从 Kotlin 1.2.30 开始:

  • remove - 用于删除元素一次。对此方法的调用将编译为对 Java 方法 List.remove(Object o) 的调用。
  • removeAt - 用于在某个位置删除。对此方法的调用将编译为对 Java 方法 List.remove(int index) 的调用。
  • removeAll - 用于删除集合,每个元素多次
  • removeIf - 使用谓词删除,每个元素多次

下面是如何使用每种方法的示例。在评论中,您可以找到每种方法将打印到控制台的内容以及其作用的简要说明:

fun main(args: Array<String>) {
val l: MutableList<Int> = mutableListOf<Int>(1, 2, 3, 3, 4, 5, 6, 7, 1, 1, 1)
println(l.remove(1)) // true
println(l) // [2, 3, 3, 4, 5, 6, 7, 1, 1, 1] - removes first element and stops
println(l.removeAt(0)) // 2 - removes exactly on a specific position
println(l) // [3, 3, 4, 5, 6, 7, 1, 1, 1]
try {
println(l.removeAt(10000))
} catch(e: IndexOutOfBoundsException) {
println(e) // java.lang.IndexOutOfBoundsException: Index: 10000, Size: 9
}
println(l.removeAll(listOf(3, 4, 5))) // true
println(l) // [6, 7, 1, 1, 1] - removes elements in list multiple times, 3 removed multiple times
println(l.removeIf { it == 1 }) // true
println(l) // [6, 7] - all ones removed
}

...

true
[2, 3, 3, 4, 5, 6, 7, 1, 1, 1]
2
[3, 3, 4, 5, 6, 7, 1, 1, 1]
java.lang.IndexOutOfBoundsException: Index: 10000, Size: 9
true
[6, 7, 1, 1, 1]
true
[6, 7]

关于java - 如何使用MutableList通过kotlin调用java来删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49272054/

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