如何访问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循环中,所有其他代码保持不变。