java stream-创建Stream(通过数组、集合List、Set、Map、Stream.of方法创建)

通过数组创建

String[] arr = new String[]{"李雷", "韩梅梅", "lucy", "lisi"};

Stream<String> stream = Arrays.stream(arr);
// 打印该 stream 对象的元素
stream.forEach( item -> System.out.println(item));

通过集合创建

通过 List 创建

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

通过 Set 创建

Set<String> set = new HashSet<>();
Collections.addAll(set,"李雷", "韩梅梅", "lucy", "lisi");
Stream<String> stream = set.stream();

通过 Map 创建

Map<String,String> map = new HashMap<>();
map.put("name","李雷");
map.put("age","20");
map.put("sex","男");

Stream<String> keyStream = map.keySet().stream();
Stream<String> valueStream = map.values().stream();

通过 Stream.of() 创建

使用较少

Stream<String> 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<Integer> stream = Stream.of(arr);
stream.forEach( item -> System.out.println(item));

执行结果:

10
300
40

原文出处:https://malaoshi.top/show_1IX5H9YreH2C.html