當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java IntStream reduce(IntBinaryOperator op)用法及代碼示例


IntStream reduce(IntBinaryOperator op)使用關聯累加函數對此流的元素進行歸約,並返回描述歸約值的OptionalInt(如果有)。

歸約運算或折疊運算采用一係列輸入元素,並將它們組合成單個匯總結果,例如查找一組數字的總和或最大值。如果滿足以下條件,則運算符或函數op是關聯的:

(a op b) op c == a op (b op c)

這是終端操作,即可能會遍曆流以產生結果或副作用。執行終端操作後,流管線被視為已消耗,無法再使用。


用法:

OptionalInt reduce(IntBinaryOperator op)

參數:

  • OptionalInt:一個可能包含也可能不包含int值的容器對象。如果存在值,則isPresent()將返回true,而getAsInt()將返回該值。
  • IntBinaryOperator:對兩個具有int值的操作數進行運算並產生int值的結果。
  • op:用於組合兩個值的關聯無狀態函數。

返回值:描述減小的值的OptionalInt(如果有)。

範例1:

// Java code for IntStream reduce 
// (IntBinaryOperator op) 
import java.util.OptionalInt; 
import java.util.stream.IntStream; 
  
class GFG { 
  
    // Driver code 
    public static void main(String[] args) 
    { 
        // Creating an IntStream 
        IntStream stream = IntStream.of(2, 3, 4, 5, 6); 
  
        // Using OptionalInt (a container object which 
        // may or may not contain a non-null value) 
        // Using IntStream reduce(IntBinaryOperator op) 
        OptionalInt answer = stream.reduce(Integer::sum); 
  
        // if the stream is empty, an empty 
        // OptionalInt is returned. 
        if (answer.isPresent()) { 
            System.out.println(answer.getAsInt()); 
        } 
        else { 
            System.out.println("no value"); 
        } 
    } 
}

輸出:

20

範例2:

// Java code for IntStream reduce 
// (IntBinaryOperator op) 
import java.util.OptionalInt; 
import java.util.stream.IntStream; 
  
class GFG { 
  
    // Driver code 
    public static void main(String[] args) 
    { 
        // Creating an IntStream 
        IntStream stream = IntStream.of(2, 3, 4, 5, 6); 
  
        // Using OptionalInt (a container object which 
        // may or may not contain a non-null value) 
        // Using IntStream reduce(IntBinaryOperator op) 
        OptionalInt answer = stream.reduce((a, b) -> (a * b)); 
  
        // if the stream is empty, an empty 
        // OptionalInt is returned. 
        if (answer.isPresent()) { 
            System.out.println(answer.getAsInt()); 
        } 
        else { 
            System.out.println("no value"); 
        } 
    } 
}

輸出:

720


相關用法


注:本文由純淨天空篩選整理自Sahil_Bansall大神的英文原創作品 IntStream reduce(IntBinaryOperator op) in Java with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。