java Stream-初体验:传统方式 vs Stream方式

介绍

通过下面案例,快速体验 传统方式 与 Stream 方式 的区别,以及 Stream 方式 的好处

问题

有下面集合:

List<String> list = new ArrayList<>();
Collections.addAll(list,"李雷", "韩梅梅", "lucy", "lisi","李小四");

过滤出 “李姓” 的数据

传统方式

List<String> list = new ArrayList<>();
Collections.addAll(list,"李雷", "韩梅梅", "lucy", "lisi","李小四");

List<String> resList = new ArrayList<>();
for(String item : list){
    if(item.startsWith("李")){ // 过滤姓李的数据
        resList.add(item); // 将其放入到新List中
    }
}

System.out.println(resList);

优点:

  • 传统编码方式,易于阅读理解

缺点:

  • 代码多
  • 效率低
  • 不符合现代开发语言

类比:相当于传统功能手机,该有的功能都有,但不好用,不符合现代人使用智能手机习惯

Stream方式

List<String> list = new ArrayList<>();
Collections.addAll(list,"李雷", "韩梅梅", "lucy", "lisi","李小四");

// 通过一行代码就能实现,而且代码简单高效
List<String> resList = list.stream()
        .filter(item -> item.startsWith("李")) // 过滤姓李的数据
        .collect(Collectors.toList()); // 将符合条件的数据,收集到List中

System.out.println(resList);

优点:

  • 通过一行代码就能实现
  • 代码简单高效

缺点:

  • 由于使用 lambda 表达式,可读性差

原文出处:http://malaoshi.top/show_1IX5HP1pJ1I6.html