我希望迭代跳过前几个元素.elements是一个List<WebElement>.我想不是从头开始遍历列表,而是从中间的某个地方开始,我怎么能这样做?
for ( WebElement element : elements )
{
//block of code
}
Run Code Online (Sandbox Code Playgroud)
Joa*_*uer 15
对于您希望将某些操作应用于特定范围的许多情况List,您可以使用subList():
for (WebElement element : elements.subList(3, 7)) {
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
这也适用于删除某些范围:
myList.subList(4, 14).clear();
Run Code Online (Sandbox Code Playgroud)
请注意,subList仅存在List,因此这不适用于一个Set或其他非List Collection对象.
如果elements是List,则可以使用listIterator,特别是方法elements.listIterator(index).它将返回从元素at开始的列表迭代器index.
例如:
for(ListIterator iter = elements.listIterator(2);iter.hasNext;) {
WebElement element = (WebElement)iter.next;
...
}
Run Code Online (Sandbox Code Playgroud)
如果elements不是列表,您仍然可以通过创建包含集合内容的新列表来使用该方法.
您可以像本示例中那样使用 List.listIterator(int)
List<WebElement> list = ...
for(Iterator<WebElement> i = list.listIterator(1); i.hasNext();) {
WebElement next = i.next();
}
Run Code Online (Sandbox Code Playgroud)
或者简单地
for(int i = 1; i < list.size(); i++) {
WebElement e = list.get(i);
}
Run Code Online (Sandbox Code Playgroud)
请注意,#1 使用 LinkedList 更快,#2 使用 ArrayList 更快。有一个特殊的标记接口 java.util.RandomAccess 来确定哪个版本对于给定的 List 更有效。