【发布时间】:2018-04-26 21:54:49
【问题描述】:
如何使用 foreach 重写这些循环?
for( int i = 0; i < bList.size(); i++ )
{
for( int j = i + 1; j < bList.size(); j++ )
{
System.out.println(bList.get(i));
System.out.println(bList.get(j));
}
}
附: public CopyOnWriteArrayList<Ball> bList = new CopyOnWriteArrayList<Ball>();
【问题讨论】:
-
你试过什么?您具体需要哪些帮助?
-
foreach 没有循环计数器,因此在这种情况下您可能无法使用 foreach,因为您的内部循环计数器取决于外部循环计数器。
-
发生错误“超出范围”是因为您执行
j=i+1。对于最后一个 i (list.size()-1),您有 j=i+1 (list.size)。所以它违反了 for 因为 j 永远不会低于列表大小。当您执行 list.get(j) 时,此索引处没有元素 -
如果要在遍历列表时从列表中删除对象,请使用迭代器进行迭代。