Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中切片列表_Java_List_Selenium Webdriver - Fatal编程技术网

在java中切片列表

在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

我有一个从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; //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());