Java Arrays parallelPrefix(int[] array, IntBinaryOperator op) 方法



描述

Java Arrays parallelPrefix(int[] array, IntBinaryOperator op) 方法使用提供的函数以并行方式累加给定数组的每个元素。由于是并行的,因此对于大型数组,前缀计算通常比顺序循环计算更有效。

声明

以下是 java.util.Arrays.parallelPrefix(int[] array, IntBinaryOperator op) 方法的声明

public static void parallelPrefix​(int[] array, IntBinaryOperator op)

参数

  • array − 这是数组,此方法会就地修改它。

  • op − 这是一个无副作用的函数,用于执行累加操作。

返回值

此方法不返回任何内容。

异常

  • NullPointerException − 如果指定的数组或函数为 null。

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

描述

Java Arrays parallelPrefix​(int[] array, int fromIndex, int toIndex, IntBinaryOperator op) 方法使用提供的函数以并行方式累加给定数组的每个元素,并在给定范围内。

声明

以下是 java.util.Arrays.parallelPrefix​(int[] array, int fromIndex, int toIndex, IntBinaryOperator op) 方法的声明

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

参数

  • array − 这是数组,此方法会就地修改它。

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

  • toIndex − 这是最后一个元素的索引(不包含)。

  • op − 这是一个无副作用的函数,用于执行累加操作。

返回值

此方法不返回任何内容。

异常

  • IllegalArgumentException − 如果 fromIndex > toIndex

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

  • NullPointerException − 如果指定的数组或函数为 null

修改 int 数组示例

以下示例演示了 Java Arrays parallelPrefix(int[], IntBinaryOperator) 方法的使用。首先,我们创建了一个 int 数组,并打印了原始数组。使用 parallelPrefix() 方法,数组被修改为包含累加结果。之后打印修改后的数组。

package com.tutorialspoint;

import java.util.Arrays;

public class ArrayDemo {
   public static void main(String[] args) {
      // initialize array
      int arr[] = { 1, 2, 3, 5, 8 };

      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 2 3 5 8 ]
Modified Array: [1 3 6 11 19 ]

使用范围修改 int 数组示例

以下示例演示了 Java Arrays parallelPrefix(int[], int, int, IntBinaryOperator) 方法的使用。首先,我们创建了一个 int 数组,并打印了原始数组。使用 parallelPrefix() 方法,数组被修改为包含累加结果。之后打印修改后的数组。

package com.tutorialspoint;

import java.util.Arrays;

public class ArrayDemo {
   public static void main(String[] args) {
      // initialize array
      int arr[] = { 1, 2, 3, 5, 8 };

      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 2 3 5 8 ]
Modified Array: [1 3 6 11 19 ]

使用范围修改 int 子数组示例

以下示例演示了 Java Arrays parallelPrefix(int[], int, int, IntBinaryOperator) 方法的使用。首先,我们创建了一个 int 数组,并打印了原始数组。使用 parallelPrefix() 方法,子数组被修改为包含累加结果。之后打印修改后的数组。

package com.tutorialspoint;

import java.util.Arrays;

public class ArrayDemo {
   public static void main(String[] args) {
      // initialize array
      int arr[] = { 1, 2, 3, 5, 8 };

      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 2 3 5 8 ]
Modified Array: [1 3 6 11 8 ]
java_util_arrays.htm
广告