image.png
    image.png
    案例:
    image.png

    1. package com.itheima.d2_stream;
    2. import java.util.ArrayList;
    3. import java.util.Collections;
    4. import java.util.List;
    5. public class StreamTest {
    6. public static void main(String[] args) {
    7. List<String> names = new ArrayList<>();
    8. // 使用Collectoions工具类的addAll的API将集合元素一次性添加到集合中去
    9. Collections.addAll(names, "张三丰","张无忌" ,"周芷若","赵敏", "张强");
    10. System.out.println(names);
    11. // // 使用普通方法实现
    12. // // 1. 从集合中找出姓张的放到新集合中
    13. // List<String> zhangList = new ArrayList<>();
    14. // for (String name : names) {
    15. // if (name.startsWith("张")){ // 如果元素中包含了 张
    16. // zhangList.add(name); // 就将元素添加到zhangList集合中去
    17. // }
    18. // }
    19. // System.out.println(zhangList); //[张三丰, 张无忌, 张强]
    20. //
    21. // // 2. 找名称长度是3的姓名
    22. // List<String> zhangThreeList = new ArrayList<>();
    23. // // 遍历这个集合: [张三丰, 张无忌, 张强]
    24. // for (String s : zhangList) {
    25. // if (s.length() == 3){ // 如果遍历到的元素长度为3
    26. // zhangThreeList.add(s); // 就将元素添加进去
    27. // }
    28. // }
    29. // System.out.println(zhangThreeList);
    30. // 3. 使用Stream实现 // filter是过滤的意思 支持链式编程(可以不断的.方法)
    31. // 他会将遍历出来的字符串 s 一层层过滤(以上代码的简写)
    32. // 1. 先得到集合或数组的Stream流(就是一根传送带)
    33. // 2. 把元素放上去
    34. // 3. 然后就用这个Stream流简化的API来方便的操作元素
    35. names.stream().filter(s -> s.startsWith("张")).filter(s -> s.length() == 3).forEach(s -> System.out.println(s));
    36. }
    37. }