Java 8 stream compare two objects and run a function on them

。_饼干妹妹 提交于 2019-12-06 13:26:14

You might use something like this:

 Map<String,List<Parts>> commonId = big.getParts().
                stream().
                collect(
                        Collectors.groupingBy(
                            Parts::getPartId,
                            Collectors.mapping(
                                Function.identity(),
                                Collectors.toList()
                            )
                        )
                ); 

and after it, you will just need to iterate over the map and apply your function. commonId.entrySet().stream().map(entry -> apply(entry))...

Updated We can omit Collectors.mapping(Function.identity(),Collectors.toList()) part, since it is a default behaviour of groupingBy

Map<String,List<Parts>> commonId = big.getParts().
                    stream().
                    collect(
                            Collectors.groupingBy(
                                Parts::getPartId
                            )
                    ); 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!