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

xe55xuns  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(275)

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

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();
}

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

bvjxkvbb

bvjxkvbb1#

如果我理解正确,您可以简单地使用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");
}

如果lista中存在listb的所有元素,则返回true,然后可以简单地打印listb的所有元素。
另一种方法是如果你不想检查所有的元素,你可以得到lista的单个元素并检查它是否存在于listb中

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

相关问题