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);
        
    }
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐