在java中切片列表

Ris*_*ena 5 java list selenium-webdriver

我有一个从 selenium-webdriver 得到的列表:

List<WebElement> allElements = driver.findElements(By.xpath(""));
Run Code Online (Sandbox Code Playgroud)

现在我想获取前 6 个元素并打印它们。

Pet*_*ček 8

您可以使用List#sublist()

System.out.println(allElements.subList(0, 6));
Run Code Online (Sandbox Code Playgroud)

或者,由于您使用的是 Webdriver,因此您还拥有 Google Guava (它是传递依赖项),因此也Iterables.limit()可以工作,并且可以说它的可读性稍高,并且当列表太短时也不会失败:

System.out.println(Iterables.limit(allElements, 6));
Run Code Online (Sandbox Code Playgroud)


Dia*_*iaa 8

一种不同且简洁的方法是使用来自 Java 8 的

List<WebElement> subElements = allElements.stream().limit(6).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)


sar*_*ana 1

使用条件检查 for 循环迭代,例如,

int i=1;
for(WebElement element: allElements){
if(i==6)
break; //break the loop
system.out.println(""+element.getText());
i++;
}
Run Code Online (Sandbox Code Playgroud)