1. 程式人生 > 資訊 >虎牙 2021 年第二季度營收同比增長 9.8%,連續十五個季度實現盈利

虎牙 2021 年第二季度營收同比增長 9.8%,連續十五個季度實現盈利

stream的建立方式

  public static void main(String[] args) {
            List<Integer> list = new ArrayList<>(0);
            list.add(1);
            list.add(2);
        list.add(3);
        list.add(4);
        System.out.println(list);
        System.out.println("------------------");


        //1.通過collection建立stream
        list.stream().forEach((li) -> {
            System.out.println(li);
        });
        System.out.println("------------------");

        //方法的引用:
        //實體物件:成員方法
        list.stream().forEach(System.out::println);
        System.out.println("------------------");
        //多執行緒建立的流
        list.parallelStream().forEach(System.out::println);

        System.out.println("------------------");
        //通過Array陣列建立的流:
        Integer[] arr={1,2,35,5};
        Arrays.stream(arr).forEach(System.out::println);

        System.out.println("---------------------");
        //通過stream的of建立的流
        Stream.of("zs","lisi").forEach(System.out::println);

        System.out.println("-------------------");
        //通過stream的iterate建立的流
        //該流用於計算
        //iterate的引數1:表示的是初始的值,引數2表示的是計算 Limit表示的是限制
        Stream.iterate(3,x->x+1).limit(3).forEach(System.out::println);

        System.out.println("----------------");
        Stream.generate(()->new Random().nextInt(5)).limit(3).forEach(System.out::println);
    }



## stream流的常見實現方式 ##
```java
  List<Person> list=new ArrayList<Person>();
        list.add(new Person("sunwukong", 500));
        list.add(new Person("tangsen", 20));
        list.add(new Person("bajie", 600));
        list.add(new Person("shaseng", 660));
        list.add(new Person("bajie", 600));

        //1.過濾流
        //名字的長度大於5
        list.stream().filter(person -> person.getName().length()>5).forEach(System.out::println);
        System.out.println("--------------------");

        //2.跳過前兩個的結果
        list.stream().skip(2).forEach(System.out::println);
        System.out.println("-------------");

        //3.去重
        list.stream().distinct().forEach(System.out::println);
        System.out.println("----------------");

        //4.sorted排序
        list.stream().sorted((o1,o2)->o1.getAge().compareTo(o2.getAge())).forEach(System.out::println);
        System.out.println("--------------");

        //5.map對映---轉為map集合
        list.stream().map(t->t.getName()).forEach(System.out::println);
        System.out.println("------------------");

        //6.多執行緒檢視
        list.stream().parallel().forEach(System.out::println);
        System.out.println("---------------------");

        //7.min求最小值
        System.out.println(list.stream().min((o1,o2)->o1.getAge()-(o2.getAge())));
        System.out.println("----------------------");

        //8.max的最大值
        System.out.println(list.stream().max((o1,o2)->o1.getAge()-o2.getAge()));
        System.out.println("---------------------");

        //9.求總個數`
        System.out.println(list.stream().count());
        System.out.println("---------------------");

        //10.reduce計算
        Optional<Integer> reduce = list.stream().map(t -> t.getAge()).reduce((o1, o2) -> o1 +o2 );
        System.out.println("計算的結果是:"+reduce);

        //11.用collect將stream轉為集合的方法
        Set<String> collect = list.stream().map(t -> t.getName()).collect(Collectors.toSet());
        System.out.println("轉為的結果是:"+collect);
    }