Java 8流如何过滤在另一个arrayList中找不到的List的内容?

Clickmit Wg

我可以基于Java 8中另一个数组列表中的元素来过滤数组列表吗?整个故事是,我从oracle电子商务套件应用程序中获取了在职员工的列表

**EmpID**
00123
003456
023299  

我有一个单独的文件,其中包含带有文件名EmpID.jpeg的照片

**FileName**
00123.jpeg
003456.jpeg
023299.jpeg         

现在,我的目的是比较列表并从提供我照片的员工和未提供我照片的员工中筛选出来。

private ArrayList<String> _IDsFromFile;
private ArrayList<String> _IDsFromImage;

      ---
      ---

public void compareAndCopy(String fileName){

}
dimo414

首先,您应将这些列表中的一个或另一个转换为Set,以使.contains()检查高效。调用.contains()aList是线性时间操作,这意味着n次执行二次操作。

一旦完成,就可以直接使用.filter()甚至.partitioningBy()确定两个列表的重叠位置。

Set<String> imageIdsSet = new HashSet<>(IDsFromImage);

List<String> overlappingIds = IDsFromFile.stream()
    .filter(imageIdsSet::contains)
    .collect(toList());

// OR

Map<Boolean, List<String>> partitionedIds = IDsFromFile.stream()
    .collect(partitioningBy(imageIdsSet::contains));
List<String> overlappingIds = partitionedIds.get(true);
List<String> missingIds = partitionedIds.get(false);

原则上,您所描述的是set操作“重叠” ID是两组ID的交集,而“缺失” ID是差异

番石榴在其实用程序中提供了这些操作的有效实现Setsunionintersectiondifference,和complementOf)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用与另一个列表Java流的整个内容匹配的条目来过滤列表的内容

如何在Java 8中按另一个元素将List的元素分组

一个Java类在同一包中找不到另一个

如何使用java中另一个类的另一个面板更改面板的内容

在 Java 中如何根据任何属性过滤类实例列表以在流或一行中获取另一个

使用 Java 8 中的另一个列表过滤对象列表

将映射器流应用于Java8中的另一个流

如何基于kotlin / java中的另一个列表过滤列表?

如何从Java中的另一个类导入已填充的现成ArrayList?

如何在Java中访问另一个类的Arraylist

如何使用ArrayList从Java中的另一个类调用方法?

Java 8 Streams:我如何流式传输另一个流,如何将代码转换成Java8流

迭代Java 8中的List并在迭代时调用另一个函数

如何GROUPBY对象的属性和映射到使用Java 8流另一个对象?

Java 8-如何从另一个列表中的对象设置列表中的对象?

使用Java8使用endsWith方法在另一个ArrayList中的一个ArrayList中查找字符串值

Java:使用流将List <Object>转换为另一个List <anotherObject>

如何将文件复制到Java 8中的另一个目录?

使用Java 8流从另一个列表创建对象列表

使用 java8 流从另一个列表创建对象列表

使用Java 8流API将地图转换为另一个地图

根据Java中另一个arraylist中的对象值对arraylist进行排序

Java 8 流 | 将流的值添加到另一个 List/Collection 而不使用 foreach 或任何终端操作

Java的8流:找到一个列表中的项目相匹配的条件计算基于从另一个列表中值

根据如何对另一个未排序的arrayList进行排序java对arrayList进行排序

Java8:使用流将一个地图转换为另一个地图

使用Java 8流从另一个地图映射构建一个地图映射

使用 Java 8 Streams 根据另一个列表过滤列表

使用Java8使用另一个列表过滤列表