java - Arraylist 比较失败
问题描述
我正在尝试将预期的字符串值列表与列表中的实际字符串值进行比较。下面是我的代码。尽管expList
列表和实际列表匹配,但布尔值返回 false 并且断言抛出错误。请让我知道我哪里错了。
public void verifyFilesInFolder(String folder, String... files) {
navigateToFolder(folder);
List<String> expList = Arrays.asList(files);
assertTrue("expected List did not match the actual list ", verifyTheFileNames(locator, expList));
}
public boolean verifyTheFileNames(String locator, List<String> expList) {
List<WebElement> elements = driver.findElements(By.xpath(locator));
ArrayList<String> actual = new ArrayList<String>();
for (int i = 0; i < elements.size(); i++) {
actual.add(elements.get(i).getText());
}
Collections.sort(actual);
System.out.println("Actual List: " + actual);
Collections.sort(expList);
System.out.println("Expected List: " + expList);
boolean flag = actual.equals(expList);
if (flag)
System.out.println("Actual and Expected List are same");
return flag;
}
输出:
实际列表:[blank.html,blank.jpg,blank.mov,blank.mp3,blank.txt]
预期列表:[blank.html,blank.jpg,blank.mov,blank.mp3,blank.txt]
解决方案
通过将文件从 String 更改为 String[] 解决了问题。
前 :
String files = "blank.html, blank.jpg, blank.mov, blank.mp3, blank.txt";
后 :
String[] files = {"blank.html", "blank.jpg", "blank.mov", "blank.mp3", "blank.txt"};
推荐阅读
- windows - LookupAccountSid() 损坏内存堆
- python-3.x - 如何以大写字母开头字符串中的每个单词,除了第一个?
- python - Python中的简单加密
- jsf - Primefaces 对话框不显示
- c# - 重新加载 ItemsSource 时 WPF 用户控件组合框绑定选择丢失
- javascript - NodeJS - 对象的对象未定义?
- excel - 由于相同的条件,阻止通过条件参数保存而不阻止 Saveas
- .net - 保存图像 (TIFF),首先保存为 BMP - 为什么?
- pyspark - Spark ML 中的 VectorAssembler 变压器挂起
- go - https://gonum.org/v1/gonum 未找到