gpt4 book ai didi

Java 8 流过滤 : IN clause

转载 作者:搜寻专家 更新时间:2023-11-01 02:25:09 24 4
gpt4 key购买 nike

List<Y> tmp= new DATA<Y>().findEntities();
List<X> tmp1 = new DATA<X>().findEntities().stream().filter(
IN (tmp) ???
).collect(Collectors.toList());

如何使用谓词模拟典型的 IN 子句(如在 mysql 或 JPA 中)?

最佳答案

我决定将我的评论更新为一个答案。您请求的 lambda 表达式 Predicate<Y> (其中 Y 应该是具体类型)如下所示:

element -> tmp.contains(element)

因为集合的contains方法与谓词的 test 具有相同的签名方法,您可以使用方法引用(这里是实例方法引用):

tmp::contains

一个完整的例子:

List<Number> tmp = Arrays.asList(1, 2, 3);
List<Integer> tmp1 = Arrays
.stream(new Integer[] { 1, 2, 3, 4, 5 })
.filter(tmp::contains)
.collect(Collectors.toList());
System.out.println(tmp1);

这打印

[1, 2, 3]

关于Java 8 流过滤 : IN clause,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26161830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com