Stream流

Stream流
JDK1.8引入的新特性。用于解决已有集合类库既有的一些弊端,依赖于Lambda表达式。

传统从集合当中取出元素

public class Dome01Stream{
   
    public static void main(String[] args){
   
        //构建一个集合
        List<String> list = new ArratList<String>();
        list.add("abc123");
        list.add("aaa22");
        list.add("bcd125");
        list.add("abcd120");
        list.add("bbb230");
        //我需要字符串中包含1的元素取出来
        List<String> list2 = new ArratList<String>();
        for(String str:lis){
   
            if(str.contains("1")){
   
                 list2.add(str);
            }
        }
        //需要字符串长度不能超过6个的元素取出来
        List<String> list3 = new ArrayList<String>();
        for(String str:list2){
   
            if(str.length()<=6){
   
            list3.add(str);
            }
        }
        //遍历查看最终想要的元素集合
        for(String str:list3){
   
        System.out.println(str)
        }
    }
}

经过观察需要对源集合中的元素进行不断的循环,而且每次循环都需要重头到尾的进行遍历
如果希望对集合中的元素进行筛选过滤:
1.将集合A中根据条件一过滤拿到子集合B;
2.再将子集和B根据条件二过滤筛选为子集和C。

Stream流的更优写法:
借助于Stream流对象中的API方法:

public class TestStream {
   
     public static void main(String[] args) {
   
        // 构建一个集合  of("abc123","aaa22")
        List<String> list = new ArrayList<String>();
        list.add("abc123");
        list.add("aaa22");
        list.add("bcd125");
        list.add("abcd120");
        list.add("bbb230");
       // 需要字符串中包含数字1的元素取出来
      Stream<String> stream = list.stream();// 源集合A
      // Stream<T> filter(Predicate<? super T> predicate) 返回由与此给定谓词匹配的此流的元素组成的流。 借助于它的方法 booolean test(T t)
     Stream<String> stream02 = stream.filter(str -> str.contains("1"));  //子集合B
      // 需要集合当中字符串长度不能超过6个的元素取出来
	 Stream<String
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值