如何搜索一个列表中的en元素是否存在于另一个列表的元素中,然后打印此元素



我有一个字符串元素列表从属性文件中读取,然后返回这些元素的列表:

public static ArrayList<String> getExpextedTestDataForHeaderList() throws IOException {
ArrayList<String> testDataList = new ArrayList<String>();
testDataList.add(hpExpectedTxtStoiximaBtn());
testDataList.add(hpExpectedTxtLiveStoiximaBtn());
testDataList.add(hpExpectedTxtVirtualBtn());
testDataList.add(hpExpectedTxtCasinoBtn());
testDataList.add(hpExpectedTxtLiveCasinoBtn());
testDataList.add(hpExpectedTxtOtherGamesBtn());
testDataList.add(hpExpectedTxtLogInBtn());
testDataList.add(hpExpectedTxtRegisterBtn());

for (int i = 0; i < testDataList.size(); i++) {
String actualTitle = testDataList.get(i).toString();
//System.out.println("From File: "+actualTitle);
}
return testDataList;
}

然后我有一个方法来获取元素(getElementsNames(,并将它们转换为第二个列表

private static ArrayList<String> methodConvertElementToList(String path) {
ArrayList<String> list = getElementsNames(path);
for (int i = 0; i < list.size(); i++) {
return list;
}
return list;
}

到目前为止,当我执行程序时,我会返回2个元素列表。

现在,如果包含第一个列表中的元素,我如何从第二个列表中搜索,然后在屏幕中打印这些元素?

我想出了一些代码,但它不起作用。有人能帮忙吗?

public static void printToScreen(String path,List<String> expectedDataList) throws IOException {
ArrayList<String> expectedNames = (ArrayList<String>) expectedDataList;
ArrayList<String> actualNames = getElementsNames(path);
//ListIterator<String> expectedNamesListIterator = expectedNames.listIterator();
//ListIterator<String> actualNamesListIterator = actualNames.listIterator();
}

使用迭代器?或者其他方式?

如果我理解正确,你可以简单地使用listA.containsAll(listB(示例代码看起来像

List<String> listA = new ArrayList<>(
List.of("ala",
"adam",
"bocian",
"hello",
"world"));
List<String> listB = new ArrayList<>(
List.of("ala",
"hello"));
if(listA.containsAll(listB)){
System.out.println("YOUR CODE");
}

如果listB的所有元素都存在于listA中,则返回true,然后您可以简单地打印listB的全部元素。

另一种方式,如果你不想检查所有元素,你可以获得listA的单个元素,并检查它是否存在于listB 中

listA.stream()
.filter(listB::contains)
.forEach(System.out::println);

最新更新