我有两个狗列表 - dogsList1,dogsList2
我想创建一个具有唯一名称字段的所有狗的列表.
(意思是,如果我遇到第二只同名的狗,我不会将它添加到结果列表中)
这是我在java中可以做的最好的,但它收集了唯一的名称,而不是Dogs :(
Dog包含除名称之外的其他字段)
// collect all dogs names from first list
List<String> dogNames1 = dogsList1.stream()
.map(x -> x.getName()).collect(Collectors.toList());
dogList2.stream()
.filter(x->!dogNames1.contains(x.getName()))
.forEach( x->
dogsList1.add(x);
);
Run Code Online (Sandbox Code Playgroud)
可以改进吗?还有其他更好的解决方案或优化方法