📜  Java中的 LongStream peek() 示例

📅  最后修改于: 2022-05-13 01:54:35.848000             🧑  作者: Mango

Java中的 LongStream peek() 示例

LongStream peek()是Java.util.stream.LongStream 中的一个方法。该函数返回一个由该流的元素组成的流,在从结果流中消耗元素时,另外对每个元素执行提供的操作。

句法 :

LongStream peek(LongConsumer action)

Where, LongStream is a sequence of primitive
long-valued elements and the function returns 
a parallel LongStream and LongConsumer represents 
an operation that accepts a single long-valued argument.

示例 1:对给定范围的流执行求和。

// Java code for LongStream peek()
// where the action performed is to get
// sum of all elements in given range
import java.util.*;
import java.util.stream.LongStream;
  
class GFG {
  
    // Driver code
    public static void main(String[] args)
    {
  
        // Creating a stream of longs
        LongStream stream = LongStream.range(2L, 10L);
  
        // performing action sum on elements of
        // given range and storing the result in sum
        long sum = stream.peek(System.out::println).sum();
  
        // Displaying the result of action performed
        System.out.println("sum is : " + sum);
    }
}
输出:
2
3
4
5
6
7
8
9
sum is : 44

示例 2:对给定范围的流执行计数操作。

// Java code for LongStream peek()
// where the action performed is to get
// count of all elements in given range
import java.util.*;
import java.util.stream.LongStream;
  
class GFG {
  
    // Driver code
    public static void main(String[] args)
    {
  
        // Creating a stream of longs
        LongStream stream = LongStream.range(2L, 10L);
  
        // performing action count on elements of
        // given range and storing the result in Count
        long Count = stream.peek(System.out::println).count();
  
        // Displaying the result of action performed
        System.out.println("count : " + Count);
    }
}
输出:
2
3
4
5
6
7
8
9
count : 8

示例 3:对给定范围的流执行平均操作。

// Java code for LongStream peek()
// where the action performed is to get
// average of all elements in given range
import java.util.*;
import java.util.OptionalDouble;
import java.util.stream.LongStream;
  
class GFG {
  
    // Driver code
    public static void main(String[] args)
    {
  
        // Creating a stream of longs
        LongStream stream = LongStream.range(2L, 10L);
  
        // performing action average on elements of
        // given range and storing the result in avg
        OptionalDouble avg = stream.peek(System.out::println)
                                 .average();
  
        // If a value is present, isPresent()
        // will return true, else -1 is displayed.
        if (avg.isPresent()) {
            System.out.println("Average is : " + avg.getAsDouble());
        }
        else {
            System.out.println("-1");
        }
    }
}
输出:
2
3
4
5
6
7
8
9
Average is : 5.5