Stream流练习
- 注意:stream流的方法一旦结束,当前流会关闭,以返回值开始
public class Main {
public static void main(String[] args) {
/*将数组转换为流 注意:数组必须使用包装类*/
Integer[] a={1,2,3,4,5};
Stream<Integer> stm=Stream.of(a);
String[] array = { "张三三", "张四四", "张五五", "张一" };
Stream<String> stream = Stream.of(array);
/*将集合转换成Stream流*/
List<String> list=new ArrayList<>();
list.add("张三三");
list.add("张四四");
list.add("张五五");
list.add("张一");
list.add("刘乐乐");
Stream<String> streamString = list.stream();
/*Stream中filter()方法
* 过滤
* */
Stream<String> streamFilter = streamString.filter((String s) -> {
return s.startsWith("张"); //以张开头的字符串
});
streamFilter=streamFilter.filter(s->s.length()>2); //更简化lambda表达式
/*limit(long n)提取前n个*/
streamFilter=streamFilter.limit(2);
/*skip(n)跳过前n个*/
streamFilter=streamFilter.skip(1);
/*map()映射*/
// Stream<Students> rStream = streamFilter.map((String s) -> {
// Students students = new Students();
// students.setName(s);
// return students;
// });
/*count()计数*/
// long count = rStream.count();
// System.out.println(count);
/*concat()组合*/
Stream<String> concat = Stream.concat(stream, streamFilter);
/*forEach()输出*/
// streamFilter.forEach((s)->{
// System.out.println(s);
// });
concat.forEach(System.out::println); //函数引用方式
}
}