listOfStrings.add("se-6ren">
gpt4 book ai didi

java - 使用迭代器从列表中删除,从第二个值开始

转载 作者:行者123 更新时间:2023-11-30 06:14:24 24 4
gpt4 key购买 nike

我有字符串列表,我想知道这是怎么可能的。

我的 list :

>         listOfStrings.add("first");
> listOfStrings.add("second");
> listOfStrings.add("third");

我的方法

public List<String> removeStringFromList(String enteredString) {
List<String> result = new ArrayList<>();
Iterator<String> iter = listOfStrings.iterator();
while (iter.hasNext()) {
String abc = iter.next();
if (abc.equals(enteredString)){
iter.remove();
}
}
return result;
}

这一行:

String abc = iter.next();

表示,abc 是列表中的下一个值,因此此循环从第二个值开始。

那么当我将“first”放入此方法时,此方法如何可能删除列表中的“first”元素?

最佳答案

迭代器将从第一个元素开始。在这种特殊情况下,由于您想跳过第一个元素,因此只需更改以下内容即可做到这一点:

Iterator<String> iter = listOfStrings.iterator();

对此:

Iterator<String> iter = listOfStrings.subList(1,listOfStrings.size()).iterator();

这利用 subList 方法返回 listOfStrings 列表中指定 1(含)和 之间的部分的 View >listOfStrings.size(),独占。

<小时/>

您还可以使用流来实现所需的结果,如下所示:

List<String> result =
IntStream.range(1, listOfStrings.size())
.filter(index -> !listOfStrings.get(index).equals(enteredString))
.mapToObj(listOfStrings::get)
.collect(Collectors.toCollection(ArrayList::new));

关于java - 使用迭代器从列表中删除,从第二个值开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49544363/

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