在两个列表中查找重复项<int[]>溪流

我有list个intarray.我需要使用2个int数组列表来找到这些数组的副本.

我确实试图实现它,但我得到了一个空array.

keys = [[1,1,0], [0,0,1], [1,2,1], [1,3,1], [1,3,2]];
phaseKey = [[1,3,2], [1,2,1], [0,0,2], [1,2,3], [1,0,3]];
desired result: [[[1,3,2]], [1,2,1]];

My code:

Stream.concat(Stream.of(keys.stream().flatMapToInt(Arrays::stream)),                     
        Stream.of(phaseKey.stream().flatMapToInt(Arrays::stream)))
                            .collect(Collectors.groupingBy(
                                    Function.identity(),
                                    Collectors.counting()))
                            .entrySet()
                            .stream()
                            .filter(m -> m.getValue() > 1)
                            .map(Map.Entry::getKey)
                            .toArray();

推荐答案

鉴于你的两份 list :

List<int[]> keys = // ....
List<int[]> phaseKey = //...

您只需筛选即可在两个列表中找到通用数组:

List<int[]> duplicates = keys.stream()
        .filter(k -> phaseKey.stream().anyMatch(p -> Arrays.equals(p,k)))
        .collect(Collectors.toList());

Java相关问答推荐

将具有多个未知字段的SON映射到Java POJO

如果给定层次 struct 级别,如何从其预序穿越构造n元树

强制Mockito返回null而不是emtpy list

如何在访问完所有文件后加入所有线程?

如何调用Firebase Realtime Database中的子图像列表到android studio中的回收器视图?

Java inline Double条件和值解装箱崩溃

有没有一种方法使保持活动设置专用于java.net.http.HttpClient的一个实例

为什么我的在一个范围内寻找素数的程序不能像S所期望的那样工作

无法了解Java线程所消耗的时间

GetChildren().emoveAll()不会删除 node

解析方法";javax/imageio/metadata/IIOMetadata.getAsTree(Ljava/lang/String;)Lorg/w3c/dom/Node时加载约束冲突

我如何为我的Java抵押贷款代码执行加薪操作(&Q)

通过Java列表中的某些字段搜索值

在java中使用不同的application.properties-jar而不使用Spring

如何在字节数组中反转UTF-8编码?

为了安全起见,有必要复制一份 list 吗?

如何使用Hibernate v6.2构建NamingStrategy,以表名作为所有列的前缀?

如何在MPAndroidChart中的条形图上正确添加标签

读取ConcurrentHashMap中的可变对象

如何在更改分辨率时将鼠标坐标计算为世界坐标