当前位置: 首页 > 知识库问答 >
问题:

查找一个arraylist中的元素是否存在于另一个arraylist中。然后打印出不匹配的内容

何灿
2023-03-14

例1

Arraylist a,b, 

Arraylist a={apple,orange,banana,kiwi};
Arraylist b={apple,orange,banana,grape};

我想检查a中的所有内容是否都存在于b中

从例子1中,上面的应该打印出false,后跟猕猴桃,因为b中没有猕猴桃。至于b中的额外水果,没有关系,因为我只想检查a的存在

System.out.println("Does b contain a: " + b.containsAll(a));

上面打印的是false,所以我的问题是:

  1. 如果为false,如何打印不匹配的值,例如应该说false,然后是kiwi
  2. 有没有更好的方法来打印真假而不是containsAll方法

共有1个答案

左恺
2023-03-14

如果需要包含a中所有不在b中的元素的列表,可以使用Streams and filter:

List<String> difference = a.stream()
                .filter(elm -> !b.contains(elm))
                .collect(Collectors.toList());
        
        if (!difference.isEmpty()) {
            for (String elm : difference) {
                System.out.println(elm);
            }
        }

如果你只需要检查b是否包含a,你也可以使用流,使用allMatch,但这可能比使用包含所有更糟糕:

boolean bContainsA = a.stream().allMatch(elm -> b.contains(elm));
 类似资料:
  • 我必须找到一个最好的方法来找出第二个arraylist中没有出现的元素。认为 所以基本上我想要的是找出a的元素,它不存在于arraylist b中。 那么,最好的解决方案是什么?

  • 问题内容: 我有两个arraylist 我想检查a2中是否存在a1的所有元素。这是我正在尝试的问题 这没有给出一致的结果…还有其他方法可以做到吗? 问题答案: 不知道我是否正确理解了您的问题,为什么使用? 试过这个: 它输出 添加一个额外的元素将使它失败(如预期): 它输出

  • 我需要检查一个arraylist中的任何值是否存在于另一个arraylist中: 它打印“它不包含”。我需要知道是否有方法比较这两个arraylist,如果其他arraylist中存在任何值,它应该返回。我知道迭代可以有所帮助。有什么简单的方法可以做到这一点吗?

  • 问题内容: 我可能在这里找不到一个简单的单行代码,但这是我的问题: 如何检查ArrayList是否包含另一个ArrayList中的所有对象?我正在寻找(如果存在的话)类似的东西: 例如: 问题答案: 接口中有一个声明的方法。在您的设置中给出所需的答案。

  • 问题内容: 如何轻松检查一个ArrayList中的所有元素是否都是另一ArrayList的所有元素? 问题答案: 使用Collection.containsAll():

  • 我试图通过一个元素在表中找到一行,然后在该行中找到一个元素并返回一个属性(或者做其他事情)。 这里的JavaSelenium代码查找一个表体。getText()准确地打印出每行中的文本,但s.findElement(xpath)除外。getText()将返回唯一的\u单元格\u名称,无论行是否包含该名称。并且if语句将在每个循环中输入。 我怎么修理它?为什么getText()返回正确的文本,但在同