通过数组创建
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