有没有更好的方法来验证一个循环列表包含在另一个Java?



当验证一个列表是否包含在另一个列表中时,我正在努力获得所需的结果。我不太确定如何处理它。

列表1:

List<WebElement> allValues = driver.findElement(By.xpath("//*[@id='allvalues']"));

List<String> list1 = new ArrayList<>();
for (WebElement all:allValues) {
String s = all.getText().trim();
list1.add(s);
}
System.out.println(list1)
输出:

"demo1", "demo2", "demo3", "demo4", "demo5"

列表2:

List<WebElement> partValues= driver.findElement(By.xpath("//*[@id='partvalues']"));
List<String> list2= new ArrayList<>();

for (WebElement part: partValues) {
String t = part.getText().trim();
list2.add(t);
}
System.out.println(list2)
输出:

"demo2", "demo3", "demo4"

我想验证list1是否包含了列表2的所有内容。我尝试了一个简单的布尔验证方法,如:

System.out.println(list1.containsAll(list2));System.out.println(list2.containsAll(list1))。两者都返回false,而不应该是这样。

验证list1中是否含有list2最可靠的方法是什么?

List#containsAll与文档一样工作,并且做您想做的。

我复制粘贴了你的示例数据。

List< String > list1 = List.of( "demo1", "demo2", "demo3", "demo4", "demo5" ) ;
List< String > list2 = List.of( "demo2", "demo3", "demo4" ) ;
boolean contained = list1.containsAll( list2 ) ;

查看代码运行在Ideone.com。

contains = true