Java中Stream流

package com.fgy.demo;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.stream.Stream;

/**
 * 使用stream流的方式,遍历集合,对集合中的数据进行过滤
 */
public class Demo01Stream {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("张无忌");
        list.add("周芷若");
        list.add("赵敏");
        list.add("张三丰");
        list.add("张三");

        // 把集合(只能是单列集合)转换成Stream流
        list.stream()
                .filter(name -> name.startsWith("张"))
                .filter(name -> name.length() == 3)
                .forEach(name -> System.out.println(name)); // 张无忌
                                                            // 张三丰

        // 把数组转换成Stream流
        // Integer[] arr = {1, 2, 3, 4, 5};
        // Stream<Integer> stream1 = Stream.of(arr);
        Stream<Integer> stream2 = Stream.of(1, 2, 3, 4, 5);
        stream2.forEach(num -> System.out.print(num + "  "));
        System.out.println();

        // 将流中的元素映射到另一个流中,可以使用map方法
        Stream<Integer> stream3 = Stream.of("10", "20", "30", "40", "50").map(s -> Integer.parseInt(s));
        stream3.forEach(i -> System.out.print(i + "  "));
        System.out.println();

        // 统计stream流中元素的个数
        ArrayList<Integer> list1 = new ArrayList<>();
        list1.add(1);
        list1.add(2);
        list1.add(3);
        long count = list1.stream().count();
        System.out.println(count);

        // limit方法用于截取流中的元素,只取用前几个
        Stream.of("哈哈", "嘿嘿", "嘻嘻", "呵呵", "憨憨").limit(3).forEach(s -> System.out.println(s));
        System.out.println("------------------");

        // skit方法跳过前几个元素
        Stream.of("哈哈", "嘿嘿", "嘻嘻", "呵呵", "憨憨").skip(3).forEach(s -> System.out.println(s));
        System.out.println("------------------");

        // concat方法合并两个流
        Stream<Integer> stream4 = Stream.of(1, 2, 3);
        Stream<Integer> stream5 = Stream.of(4, 5, 6);
        Stream<Integer> concat = Stream.concat(stream4, stream5);
        concat.forEach(i -> System.out.print(i + "  "));
    }
}
原文地址:https://www.cnblogs.com/roadlandscape/p/12180002.html