gpt4 book ai didi

java - Java的列表迭代器

转载 作者:搜寻专家 更新时间:2023-11-01 01:59:34 25 4
gpt4 key购买 nike

所以这只是一个理解列表迭代器的虚拟程序。我正在做的步骤

  1. 用“A”和“B”创建了一个 ArrayList
  2. 现在为这个 ArrayList 创建一个 listIterator
  3. 如果找到“B”,则在其旁边添加“C”
  4. 如果发现“A”有问题,请将其替换为“a”
  5. 如果发现“B”有问题,请将其替换为“b”。

代码:

public class Main {
public static void main(String[] args) {
ArrayList<String> al = new ArrayList<String>();
al.add("A");
al.add("B");

ListIterator lItr = al.listIterator();
while(lItr.hasNext()) {
String s = (String)lItr.next();
System.out.println(s);
if(s.equals("B")) {
lItr.add("C");
}
if(s.equals("A")) {
lItr.set("a");
}
else if(s.equals("B")) {
lItr.set("b");//Im getting an exception here saying
"java.lang.IllegalStateException"
}
}
System.out.println(al);
}
}

请任何人告诉我为什么我得到这个异常为什么我不能将“B”设置为 b。

最佳答案

您正在调用 lItr.add("C"),然后调用 lItr.set("b") 而没有调用 nextprevious 之间。

void java.util.ListIterator.set(Object e)

Replaces the last element returned by next or previous with the specified element (optional operation). This call can be made only if neither remove nor add have been called after the last call to next or previous.

关于java - Java的列表迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53627398/

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