Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java8流过滤:IN子句 List tmp=newdata().findEntities(); 列表tmp1=新数据().Findentials().stream().filter( 在(tmp)中??? ).collect(Collectors.toList());_Java_Lambda - Fatal编程技术网

Java8流过滤:IN子句 List tmp=newdata().findEntities(); 列表tmp1=新数据().Findentials().stream().filter( 在(tmp)中??? ).collect(Collectors.toList());

Java8流过滤:IN子句 List tmp=newdata().findEntities(); 列表tmp1=新数据().Findentials().stream().filter( 在(tmp)中??? ).collect(Collectors.toList());,java,lambda,Java,Lambda,如何使用谓词模拟tipical IN子句(如mysql或JPA?我决定将注释更新为答案。请求的谓词的lambda表达式(其中Y应为具体类型)如下所示: List<Y> tmp= new DATA<Y>().findEntities(); List<X> tmp1 = new DATA<X>().findEntities().stream().filter( IN (tmp) ???

如何使用谓词模拟tipical IN子句(如mysql或JPA?

我决定将注释更新为答案。请求的
谓词的lambda表达式(其中Y应为具体类型)如下所示:

List<Y> tmp= new DATA<Y>().findEntities();
List<X> tmp1 = new DATA<X>().findEntities().stream().filter(
                        IN (tmp) ???
                ).collect(Collectors.toList());
由于集合的
contains
方法与谓词的
test
方法具有相同的签名,因此可以使用方法引用(此处为实例方法引用):

一个完整的例子:

tmp::contains

tmp.contains(entity)
其中
tmp
是一个
HashSet
tmp::contains
(一个方法引用)我可以有一个谓词(实现)示例吗?这会生成对java.util.Collection.contains的可疑调用(有时)我既没有收到可疑调用,也没有收到编译器警告。我只得到所描述的输出。
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]