【发布时间】:2018-12-05 16:51:43
【问题描述】:
所以这只是一个理解列表迭代器的虚拟程序。 我正在做的步骤
- 用“A”和“B”创建了一个 ArrayList
- 现在为这个 ArrayList 创建了一个 listIterator
- 如果发现“B”,则在其旁边添加“C”
- 如果发现“A”,则将其替换为“a”
- 如果发现“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。
【问题讨论】:
-
你读过documentation吗?
-
请注意,如果您将
lItr的类型声明为ListIterator<String>,则不需要String s = (String)lItr.next();中的演员表
标签: java