Java Stream流count统计数量、limit取前几个元素、skip跳过前几个、concat合并流
Stream流的常用APIpublic static void main(String[] args) {List<String> ls = new ArrayList<>();ls.add("小白");ls.add("小黑子");ls.add("蓝天白");ls.add("小红");//过滤出长度为3的字符串ls.stream().filter
·
Stream流的常用API
public static void main(String[] args) {
List<String> ls = new ArrayList<>();
ls.add("小白");
ls.add("小黑子");
ls.add("蓝天白");
ls.add("小红");
//过滤出长度为3的字符串
ls.stream().filter( s -> s.length()==3 );
//foreach循环打印
ls.stream().filter( s -> s.length()==3 ).forEach(System.out::println);
//count计数
long count = ls.stream().filter(s -> s.length() == 3).count();
System.out.println(count);
//limit获取前几个
ls.stream().filter(s -> s.length() == 3).limit(1).forEach(System.out::println);
//skip跳过前几个
ls.stream().filter(s -> s.length() == 3).skip(1).forEach(System.out::println);
//map映射,变为新的字符串
ls.stream().map(a -> a + "新的字符串").forEach(System.out::println);
//map转为一个学生对象
ls.stream().map( b -> new Student(b,22)).forEach(System.out::println);
}
- forEach : 逐一处理(遍历)
//foreach循环打印
ls.stream().filter( s -> s.length()==3 ).forEach(System.out::println);
- count:
统计个数
long count () ;
//count计数
long count = ls.stream().filter(s -> s.length() == 3).count();
System.out.println(count);
- filter : 过滤元素
– Stream filter (Predicate<? super T> predicate)
//过滤出长度为3的字符串
ls.stream().filter( s -> s.length()==3 );
- limit : 取前几个元素
//limit获取前几个
ls.stream().filter(s -> s.length() == 3).limit(1).forEach(System.out::println);
- skip :跳过前几个
//skip跳过前几个
ls.stream().filter(s -> s.length() == 3).skip(1).forEach(System.out::println);
- map : 映射 相当于一个加工方法
将这个对象变为另外一个对象
//map映射,变为新的字符串
ls.stream().map(a -> a + "新的字符串").forEach(System.out::println);
//map转为一个学生对象
ls.stream().map( b -> new Student(b,22)).forEach(System.out::println);
- concat :
合并流
public static void main(String[] args) {
List<String> ls = new ArrayList<>();
ls.add("小白");
ls.add("小黑子");
ls.add("蓝天白");
ls.add("小红");
//数组流
Stream<Integer> s1 = Stream.of(10, 20, 30, 40);
//集合流
Stream<String> s2 = ls.stream();
//合并流
//合并类型不一样用objects
//Stream<? extends Serializable> concat = Stream.concat(s1, s2);
Stream<Object> concat = Stream.concat(s1, s2);
concat.forEach(System.out::println);
}
更多推荐
已为社区贡献2条内容
所有评论(0)