Java Arrays parallelPrefix(double[] array, DoubleBinaryOperator op) 方法



描述

Java Arrays parallelPrefix(double[] array, DoubleBinaryOperator op) 方法使用提供的函式以並行方式累加給定陣列的每個元素。由於是並行的,因此對於大型陣列,字首計算通常比順序迴圈計算更有效。

宣告

以下是java.util.Arrays.parallelPrefix(double[] array, DoubleBinaryOperator op) 方法的宣告

public static void parallelPrefix​(double[] array, DoubleBinaryOperator op)

引數

  • array − 此陣列將被此方法就地修改。

  • op − 這是一個無副作用的函式,用於執行累加。

返回值

此方法不返回任何值。

異常

  • NullPointerException − 如果指定的陣列或函式為空。

Java Arrays parallelPrefix​(double[] array, int fromIndex, int toIndex, DoubleBinaryOperator op) 方法

描述

Java Arrays parallelPrefix​(double[] array, int fromIndex, int toIndex, DoubleBinaryOperator op) 方法使用提供的函式以並行方式累加給定陣列的每個元素,範圍由引數指定。

宣告

以下是java.util.Arrays.parallelPrefix​(double[] array, int fromIndex, int toIndex, DoubleBinaryOperator op) 方法的宣告

public static void parallelPrefix​(double[] array, int fromIndex, int toIndex, DoubleBinaryOperator op)

引數

  • array − 此陣列將被此方法就地修改。

  • fromIndex − 這是第一個元素的索引(包含)。

  • toIndex − 這是最後一個元素的索引(不包含)。

  • op − 這是一個無副作用的函式,用於執行累加。

返回值

此方法不返回任何值。

異常

  • IllegalArgumentException − 如果 fromIndex > toIndex

  • ArrayIndexOutOfBoundsException − 如果 fromIndex < 0 或 toIndex > array.length

  • NullPointerException − 如果指定的陣列或函式為空

修改雙精度陣列示例

以下示例演示了 Java Arrays parallelPrefix(double[], DoubleBinaryOperator) 方法的用法。首先,我們建立了一個雙精度陣列,並列印了原始陣列。使用 parallelPrefix() 方法修改陣列以獲得累積結果。之後列印修改後的陣列。

package com.tutorialspoint;

import java.util.Arrays;

public class ArrayDemo {
   public static void main(String[] args) {
      // initialize array
      double arr[] = { 1.0, 2.0, 3.0, 5.0, 8.0 };

      System.out.print("Original Array: [");
      // print the array
      for (int i = 0; i < arr.length; i++) {
         System.out.print(arr[i] + " ");
      }
      System.out.println("]");

      Arrays.parallelPrefix(arr, (x, y) -> x + y);

      System.out.print("Modified Array: [");
      // print the array
      for (int i = 0; i < arr.length; i++) {
         System.out.print(arr[i] + " ");
      }
      System.out.println("]");
   }
}

輸出

讓我們編譯並執行上面的程式,這將產生以下結果:

Original Array: [1.0 2.0 3.0 5.0 8.0 ]
Modified Array: [1.0 3.0 6.0 11.0 19.0 ]

使用範圍修改雙精度陣列示例

以下示例演示了 Java Arrays parallelPrefix(double[], int, int, DoubleBinaryOperator) 方法的用法。首先,我們建立了一個雙精度陣列,並列印了原始陣列。使用 parallelPrefix() 方法修改陣列以獲得累積結果。之後列印修改後的陣列。

package com.tutorialspoint;

import java.util.Arrays;

public class ArrayDemo {
   public static void main(String[] args) {
      // initialize array
      double arr[] = { 1.0, 2.0, 3.0, 5.0, 8.0 };

      System.out.print("Original Array: [");
      // print the array
      for (int i = 0; i < arr.length; i++) {
         System.out.print(arr[i] + " ");
      }
      System.out.println("]");

      Arrays.parallelPrefix(arr, 0, arr.length, (x, y) -> x + y);

      System.out.print("Modified Array: [");
      // print the array
      for (int i = 0; i < arr.length; i++) {
         System.out.print(arr[i] + " ");
      }
      System.out.println("]");
   }
}

輸出

讓我們編譯並執行上面的程式,這將產生以下結果:

Original Array: [1.0 2.0 3.0 5.0 8.0 ]
Modified Array: [1.0 3.0 6.0 11.0 19.0 ]

使用範圍修改雙精度子陣列示例

以下示例演示了 Java Arrays parallelPrefix(double[], int, int, DoubleBinaryOperator) 方法的用法。首先,我們建立了一個雙精度陣列,並列印了原始陣列。使用 parallelPrefix() 方法修改子陣列以獲得累積結果。之後列印修改後的陣列。

package com.tutorialspoint;

import java.util.Arrays;

public class ArrayDemo {
   public static void main(String[] args) {
      // initialize array
      double arr[] = { 1.0, 2.0, 3.0, 5.0, 8.0 };

      System.out.print("Original Array: [");
      // print the array
      for (int i = 0; i < arr.length; i++) {
         System.out.print(arr[i] + " ");
      }
      System.out.println("]");

      Arrays.parallelPrefix(arr, 0, 4, (x, y) -> x + y);

      System.out.print("Modified Array: [");
      // print the array
      for (int i = 0; i < arr.length; i++) {
         System.out.print(arr[i] + " ");
      }
      System.out.println("]");
   }
}

輸出

讓我們編譯並執行上面的程式,這將產生以下結果:

Original Array: [1.0 2.0 3.0 5.0 8.0 ]
Modified Array: [1.0 3.0 6.0 11.0 8.0 ]
java_util_arrays.htm
廣告