告土鳖的循环对比,java8 Stream 取出两个list中相同部分

private static final List<String> list = Lists.newArrayList("1","2","3","4","5");
private static final List<String> list2 = Lists.newArrayList("0","1","2","3","4");
@Test
public void stream(){
    List<String> l = (List)list.stream().filter(it->list2.contains(it)).collect(Collectors.toList());
}

就这么简简单单的一行代码就能取出   list  和   list2  中的相同部分,再也不用写  for   ,担心性能问题了。

拓展

@Test
public void stream(){
    List<String> str = (List)list.stream().filter(it->
            list2.stream().filter(it2 -> it.equals(it2)).count()!=0
    ).collect(Collectors.toList());
}

@Test
public void stream2(){
    List<Integer> list = Lists.newArrayList(1,2,3,4,5);
    long count = list.stream().filter(x -> {list.remove(0);return true;})
            .count();
    System.out.println(count);
}


转载于:https://my.oschina.net/porcoGT/blog/599900

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值