[java] 流及并行流

  • Java8开始提供了流(stream)操作
  • 基本用法
    List<Integer> nums = Arrays.asList(1,2,3);
    nums.stream().forEach(x->{System.out.println(x);});
    

函数式风格的操作

  • 得到流
    Stream<T> stream = collection.stream();
    
  • 操作流
    int sumOfWeights = blocks.stream()
    .filter(b -> b.getColor() == RED)
    .mapToInt(b -> b.getWeight())
    .sum();
    
  • 流操作分成两类
    中间的:中间的操作保持流打开状态,并允许后续的操作,如filter sorted limit map
    末端的:末端的操作必须是对流的最终操作,如max min count forEach findAny

流的并行计算

  • 只需将.stream()换成.parallelStream()
Written on December 11, 2022