【发布时间】:2018-09-28 11:36:34
【问题描述】:
我正在尝试使用递归和迭代来查找列表中的第二大元素:
static List<Integer> list = new ArrayList<Integer>();
static Iterator<Integer> it = list.iterator();
public static int secondBiggest(List<Integer> a) {
if(it.hasNext()) {
Integer cur = it.next();
if (cur > biggest) {
secondBiggest = biggest;
biggest = cur;
} else if (cur < biggest && cur > secondBiggest) {
secondBiggest = cur;
}
secondBiggest(a);
}
return secondBiggest;
}
我得到的是一个
并发修改异常 在 java.base/java.util.ArrayList$Itr.checkForComodification(未知来源) 在 java.base/java.util.ArrayList$Itr.next(Unknown Source)
在前面提到的代码的第 6 行
【问题讨论】:
-
你使用的是哪个 List 实现?
-
@PrashantShilimkar
java.util.ArrayList -
添加更多上下文:
it来自哪里? -
是的,抱歉,我添加了它
-
你在哪里调用 secondBiggest()?
标签: java list iterator integer