在java中切片列表
我有一个从selenium webdriver获得的列表:在java中切片列表,java,list,selenium-webdriver,Java,List,Selenium Webdriver,我有一个从selenium webdriver获得的列表: List<WebElement> allElements = driver.findElements(By.xpath("")); List-allegements=driver.findElements(By.xpath(“”); 现在我想获取前6个元素并打印它们。使用条件检查for循环迭代,例如 int i=1; for(WebElement element: allElements){ if(i==6) break
List<WebElement> allElements = driver.findElements(By.xpath(""));
List-allegements=driver.findElements(By.xpath(“”);
现在我想获取前6个元素并打印它们。使用条件检查for循环迭代,例如
int i=1;
for(WebElement element: allElements){
if(i==6)
break; //break the loop
system.out.println(""+element.getText());
i++;
}
有多种方法,其中一种方法如下:
for(int i=0; i < 6; i++) {
WebElement element = allElements.get(i);
}
for(int i=0;i<6;i++){
WebElement=等位基因.get(i);
}
您可以使用:
或者,因为您使用的是Webdriver,所以您还可以使用Google Guava(它是一种可传递的依赖项),因此也可以使用,而且可以说它的可读性稍高,并且在列表太短时不会失败:
System.out.println(Iterables.limit(allElements, 6));
另一种简洁的方法是使用Java 8:
List<WebElement> subElements = allElements.stream().limit(6).collect(Collectors.toList());
List subElements=allegements.stream().limit(6.collect)(collector.toList());
这个增量不是我的两倍吗…?是的,我的错。立即更正我尝试了它,我的代码正在工作,正如我所希望的。子列表
返回对原始列表项的引用列表。它不复制。请注意,流中还有skip()
skip()
和limit()
是好朋友。
List<WebElement> subElements = allElements.stream().limit(6).collect(Collectors.toList());