如何访问ArrayList中的上一个/下一个元素?
我以这种方式遍历ArrayList:
for (T t : list){ ... }
当我这样做时,我从未想过我必须访问此元素的上一个和下一个元素。 现在我的代码很庞大。 如果我用以下内容重写它会花费很多:
for (int i = 0; i < list.size(); i++){ ... }
不,for-each循环用于抽象引擎盖下的Iterator
。 访问它将允许您检索前一个元素:
ListIterator it = list.listIterator(); while (it.hasNext()) { T t = it.next(); T prev = it.previous(); }
但是你不能直接用for-each来做。
作为标题的答案,而不是问题(考虑并发操作)……
T current; T previous; { ListIterator lit = list.listIterator(index); current = lit.hasNext()?lit.next():null; previous = lit.hasPrevious()?lit.previous():null; }
您可以使用get(index)方法访问ArrayList中的任何元素。
import java.util.ArrayList; public class Test { public static void main(String[] args) { ArrayList array = new ArrayList (); array.add(1); array.add(2); array.add(3); for(int i=1; i
我认为我发现解决方案实际上很简单,但我不能删除这篇post,因为它有答案..
我刚刚添加了T t = list.get(i);
在第二个for循环中,所有其他代码保持不变。