zoukankan      html  css  js  c++  java
  • java Stream学习笔记

    1、Stream与io无关。

    2、Stream和用普通的循环没有太大区别,甚至时间复杂度更高,代码可读性差(通常代码行数更少)。

    3、流操作就是把循环要做的任务单独抽取出来,最终通过编译在一起。

    来看一下实现一个例子:

    import java.util.List;
    import java.util.ArrayList;
    
    public class Demo {
        public static void main(String[] args) {
            List<String> list = new ArrayList<>();
            list.add("张无忌");
            list.add("周芷若");
            list.add("赵敏");
            list.add("张强");
            list.add("张三丰");
    
            //普通写法
            List<String> zhangList = new ArrayList<>();
            for (String name : list) {
                if (name.startsWith("张") && name.length() == 3) {
                    System.out.println(name);
                }
            }
            
            //流式写法
            list.stream()
                    .filter(s -> s.startsWith("张"))
                    .filter(s -> s.length() == 3)
                    .forEach(s ->System.out.println(s));
        }
    }

    实际上代码并没有简洁多少,反而可读性变差。当然简洁的代码要么被编译器编程成时间复杂度更低的代码,要么就是牺牲时间复杂度。

    Java流操作还有其他的一些操作,常见的有:

    map操作、for each操作、limit操作。。。。

    总结起来就是

    1、集合对象/数组对象 .stream() . 操作(集合元素/数组元素 -> 条件 )

    2、集合对象/数组对象 .stream() . 操作(集合元素/数组元素 -> 新的引用)

    3、集合对象/数组对象 .stream() . 操作(集合元素/数组元素 -> {要做什么} )

  • 相关阅读:
    php中向mysql插入数据
    W3Cschool菜鸟教程离线版下载链接
    Call to undefined function mysqli_connect()
    Windows下MySQL 5.6安装及配置详细图解
    请不要再责怪你的程序员“太慢”
    工欲善其事必先利其器
    PHP正则表达式
    matlab画柱状图
    matlab 把数组中的NaN去除掉
    建模2017A题 角度lingo代码
  • 原文地址:https://www.cnblogs.com/easyidea/p/13754964.html
Copyright © 2011-2022 走看看