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