为了账号安全,请及时绑定邮箱和手机立即绑定

测试两个集合是否与java流共享3个元素

测试两个集合是否与java流共享3个元素

杨魅力 2019-04-10 13:15:07
我需要一个java流操作来测试两个集合是否有3个共同元素。这是我的java 7代码,工作正常:@Testpublic void testContainement(){     Set<Integer> setOne = IntStream.of(0,1,4,3)                                    .boxed()                                    .collect(Collectors.toCollection(HashSet::new));     Set<Integer> setTwo = IntStream.of(0,1,4,5)             .boxed()             .collect(Collectors.toCollection(HashSet::new));     Assertions.assertEquals(true,testSets(setOne,setTwo));}private boolean testSets( Set<Integer> setOne, Set<Integer> setTwo ) {     int counter=0;     for (int x: setOne){         if (setTwo.contains(x))             counter++;     }     return counter > 2;}我们怎么能用java流操作来做到这一点。谢谢。
查看完整描述

2 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

使用Stream.count

private boolean testSets(Set<Integer> setOne, Set<Integer> setTwo) {
    return setOne.stream().filter(setTwo::contains).count() > 2;}

或者添加它,如果早期找到两个以上的元素,则避免迭代整个集合,limit用作:

return setOne.stream().filter(setTwo::contains).limit(3).count() > 2;


查看完整回答
反对 回复 2019-05-15
  • 2 回答
  • 0 关注
  • 344 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信