1,常用的API:(中间方法和终结方法)

image.png

2,API中的中间方法使用举例:(所有中间方法都要带终结方法才能运行)

  1. 对流中的数据进行过滤:filter ```java //一般写法: //过滤掉长度不等于3的字符串 list.stream().filter(new Predicate() {
    1. @Override
    2. public boolean test(String s) {
    3. return s.length() == 3;
    4. }
    }).forEach(new Consumer() {
    1. @Override
    2. public void accept(String s) {
    3. System.out.println(s);
    4. }
    });

//Lambda写法: list.stream().filter(s -> s.length() == 3).forEach(s -> System.out.println(s));

  1. 2. 获取前几个元素:**limit**
  2. ```java
  3. list.stream().limit(2);
  1. 跳过前几个元素:skip

    1. list.stream().skip(2);
  2. 去除流中的重复元素:distinct

    1. list.stream().distinct();
  3. 合并a和b两个流:concat

    1. Stream.concat(stream1, stream2).forEach(s -> System.out.println(s));
  4. map方法:转换流中的类型;

    1. list.stream().map(new Function<String, Integer>() {
    2. @Override
    3. public Integer apply(String s) {
    4. return Integer.valueOf(s);
    5. }
    6. });

    3,API中的终结方法的使用举例:

  5. 遍历流中的元素:forEach ```java //lambda格式: list.stream().forEach(s -> System.out.println(s));

//一般格式: list.stream().forEach(new Consumer() { @Override public void accept(String s) { System.out.println(s); } });

  1. 2. 返回流中的元素数量:**count**
  2. ```java
  3. list.stream().count();
  4. long count = list.stream().count();

4,使用Stream流时的注意事项:

  1. 只有中间方法,而没有调用终结方法时,Stream流不会执行;
  2. Stream流只能调用一次;
  3. 推荐使用:链式编程加Lambda表达式;