Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.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使用另一个列表筛选列表_Java_Java 8 - Fatal编程技术网

使用Java8使用另一个列表筛选列表

使用Java8使用另一个列表筛选列表,java,java-8,Java,Java 8,我有一个要使用另一个静态列表过滤的实体列表。我正在努力与过滤器部分 List<Entity> entityList = new ArrayList<Entity> Entity e1 = new Entity(); e1.setId("1"); entityList.add(e1); Entity e2 = new Entity(); e2.setId("2"); entityList.add(e2); List

我有一个要使用另一个静态列表过滤的实体列表。我正在努力与过滤器部分

 List<Entity> entityList = new ArrayList<Entity>
 Entity e1 = new Entity();
 e1.setId("1");
 entityList.add(e1);
 Entity e2 = new Entity();
 e2.setId("2");
 entityList.add(e2);

  List<String>idList = Arrays.asList("1","3","5","7");
我想迭代entityList并去掉idList中的ID。我是这样做的

  List<updatedList> = entityList.stream()
                                 .filter(entry -> entry.getId().anyMatch(idList))
                                   .collect(Collectors.toList());   

getId是一个字符串,因此我不能使用anyMatch,因为它应该是一个流。如何修复此问题?

您不需要其他流

首先,我建议使用集合进行O1查找

因此,不要将idList作为列表:

Set<String> idList = new HashSet<>(Arrays.asList("1","3","5","7"));
由于contains是集合类型上的一个方法,因此上面的内容应该作为列表或任何其他集合与idList一起使用

entityList.stream()
  .filter(entry -> idList.contains(entry.getId()))
  .collect(Collectors.toList());