java - 如何查找列表是否包含多个谓词 Java Lambda

标签 java lambda

我想弄清楚如何在 Java Lambda 中对单个过滤器执行多个谓词,但运气不佳。

我有一个字符串列表

List<String> namesList = new ArrayList(){};
namesList.add("John");
namesList.add("Jane");
namesList.add("Smith");
namesList.add("Roger");

我在伪逻辑中有两个 if 语句,我想测试但不确定如何使用 lambda 进行测试(我可以使用老派方法但尝试在这里学习)。

if nameslist contains John and Roger
   print "John & Roger"

if nameslist contains Jane and Smith
   print "Jane Smith"

如何使用 Java lambda 测试列表中的两种情况?

最佳答案

我会这样做:

    if (namesList.stream()
            .filter(x -> (x.equals("John") || x.equals(("Roger"))))
            .collect(Collectors.toSet())
            .size() == 2) {
        System.out.print("John & Roger");
    }

    if (namesList.stream()
            .filter(x -> (x.equals("Jane") || x.equals(("Smith"))))
            .collect(Collectors.toSet())
            .size() == 2) {
        System.out.print("Hane Smith");
    }

关于java - 如何查找列表是否包含多个谓词 Java Lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34834570/

相关文章:

java - 我是 Java Swing 的新手,一般来说,我今天编写的代码有一个涉及 button.doClick() 方法的奇怪故障。

java - 如何正确读取这个异常?这是 Hibernate 映射问题吗?

java - 点击返回时相机变黑(二维码)

Python正则表达式替换,用lambda函数,覆盖非捕获组

c++ - 为什么 lambda 没有从到达范围捕获类型 const double,而 const int 是?

python - Lambda 数据框引用另一列中的值

java - "Tomcat 7 JDBC Connection Pool"是否足以用于生产?它与 BoneCP 相比如何?

c# - 使用 lambda 运算符创建斐波那契数列

java - Lambda 等于使用可选值和映射器

java - 使用处理语言直观地表示 XML。如何在数据结束/中断的每个点绘制椭圆?