java stream-创建Stream(通过数组、集合List、Set、Map、Stream.of方法创建) 作者:马育民 • 2023-04-07 19:22 • 阅读:10045 # 通过数组创建 ``` String[] arr = new String[]{"李雷", "韩梅梅", "lucy", "lisi"}; Stream stream = Arrays.stream(arr); // 打印该 stream 对象的元素 stream.forEach( item -> System.out.println(item)); ``` # 通过集合创建 ### 通过 List 创建 ``` List list = new ArrayList<>(); Collections.addAll(list,"李雷", "韩梅梅", "lucy", "lisi"); Stream stream = list.stream(); ``` ### 通过 Set 创建 ``` Set set = new HashSet<>(); Collections.addAll(set,"李雷", "韩梅梅", "lucy", "lisi"); Stream stream = set.stream(); ``` ### 通过 Map 创建 ``` Map map = new HashMap<>(); map.put("name","李雷"); map.put("age","20"); map.put("sex","男"); Stream keyStream = map.keySet().stream(); Stream valueStream = map.values().stream(); ``` # 通过 Stream.of() 创建 使用较少 ``` Stream stream = Stream.of("李雷", "韩梅梅", "lucy", "lisi"); ``` ### 注意:不要传入基本数据类型的数组 ``` int[] arr = new int[]{10,300,40}; Stream stream = Stream.of(arr); stream.forEach( item -> System.out.println(item)); ``` 执行结果: ``` [I@404b9385 // 将该数组当成一个元素传入,索引打印的是内存地址 ``` **解决:** 声明为 `Integer` 类型的数组: ``` Integer[] arr = new Integer[]{10,300,40}; Stream stream = Stream.of(arr); stream.forEach( item -> System.out.println(item)); ``` 执行结果: ``` 10 300 40 ``` 原文出处:http://malaoshi.top/show_1IX5H9YreH2C.html