使用Eclipse Collections,您可以在任何java.util.List上使用detectIndex
和remove(int)
。
List<Integer> integers = Lists.mutable.with(1, 2, 3, 4, 5);
int index = Iterate.detectIndex(integers, i -> i > 2);
if (index > -1) {
integers.remove(index);
}
Assert.assertEquals(Lists.mutable.with(1, 2, 4, 5), integers);
如果您使用Eclipse Collections中的
MutableList
类型,您可以直接在列表上调用
detectIndex
方法。
MutableList<Integer> integers = Lists.mutable.with(1, 2, 3, 4, 5);
int index = integers.detectIndex(i -> i > 2);
if (index > -1) {
integers.remove(index);
}
Assert.assertEquals(Lists.mutable.with(1, 2, 4, 5), integers);
注意:我是 Eclipse Collections 的提交者。
get()
!你无法确定它是否为空。如果元素不存在,这将抛出异常。相反,使用其中一个安全方法,例如ifPresent
、orElse
、orElseGet
或orElseThrow
。 - Brian Goetzlist
中谓词为真的所有元素,还是仅删除第一个(可能是零个、一个或多个元素)? - Kedar Mhaswade