虎牙 2021 年第二季度營收同比增長 9.8%,連續十五個季度實現盈利
阿新 • • 發佈:2021-08-17
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); }