java把固定数组排序,Java并行数组排序

Java在Array类中提供了一项新的附加功能, 该功能用于对数组元素进行并行排序.java.util.Arrays包中添加了新方法, 该方法使用JSR 166 Fork / Join并行公共池来并行地对数组进行排序。被称为parallelSort(), 并且对所有原始数据类型和Comparable对象都进行了重载。

下表包含Arrays重载排序方法。

方法

描述

public static void parallelSort(byte[] a)

它将指定的数组按升序排列。

public static void parallelSort(byte[] a, int fromIndex, int toIndex)

它将指定范围的数组按升序排列。要排序的范围从索引fromIndex(含)到索引toIndex(不包含)。如果fromIndex == toIndex, 则要排序的范围为空。

public static void parallelSort(char[] a)

它将指定的数组按升序排列。

public static void parallelSort(char[] a, int fromIndex, int toIndex)

它将指定范围的数组按升序排列。要排序的范围从索引fromIndex(含)到索引toIndex(不包含)。如果fromIndex == toIndex, 则要排序的范围为空。

public static void parallelSort(double[] a)

它将指定的数组按升序排列。

public static void parallelSort(double[] a, int fromIndex, int toIndex)

它将指定范围的数组按升序排列。要排序的范围从索引fromIndex(含)到索引toIndex(不包含)。如果fromIndex == toIndex, 则要排序的范围为空。

public static void parallelSort(float[] a)

它将指定的数组按升序排列。

public static void parallelSort(float[] a, int fromIndex, int toIndex)

它将指定范围的数组按升序排列。要排序的范围从索引fromIndex(含)到索引toIndex(不包含)。如果fromIndex == toIndex, 则要排序的范围为空。

public static void parallelSort(int[] a)

它将指定的数组按升序排列。

public static void parallelSort(int[] a, int fromIndex, int toIndex)

它将指定范围的数组按升序排列。要排序的范围从索引fromIndex(含)到索引toIndex(不包含)。如果fromIndex == toIndex, 则要排序的范围为空。

public static void parallelSort(long[] a)

它将指定的数组按升序排列。

public static void parallelSort(long[] a, int fromIndex, int toIndex)

它将指定范围的数组按升序排列。要排序的范围从索引fromIndex(含)到索引toIndex(不包含)。如果fromIndex == toIndex, 则要排序的范围为空。

public static void parallelSort(short[] a)

它将指定的数组按升序排列。

public static void parallelSort(short[] a, int fromIndex, int toIndex)

它将指定范围的数组按升序排列。要排序的范围从索引fromIndex(含)到索引toIndex(不包含)。如果fromIndex == toIndex, 则要排序的范围为空。

公共静态>无效parallelSort(T [] a)

根据对象的自然顺序, 将指定对象数组按升序排序。数组中的所有元素必须实现Comparable接口。此外, 数组中的所有元素必须相互可比较(也就是说, e1.compareTo(e2)不得对数组中的任何元素e1和e2抛出ClassCastException)。

公共静态 void parallelSort(T [] a, Comparator cmp)

它根据指定的比较器引发的顺序对指定的对象数组进行排序。数组中的所有元素必须可以通过指定的比较器相互比较(即, c.compare(e1, e2)不得对数组中的任何元素e1和e2抛出ClassCastException。

公共静态> void parallelSort(T [] a, int fromIndex, int toIndex)

它将根据其对象的自然顺序将指定对象数组的指定范围按升序排序。要排序的范围从索引fromIndex(含)到索引toIndex(不包含)。 (如果fromIndex == toIndex, 则要排序的范围为空。)此范围内的所有元素必须实现Comparable接口。此外, 此范围内的所有元素都必须相互可比较(即e1.compareTo(e2)不得对数组中的任何元素e1和e2抛出ClassCastException)。

公共静态 void parallelSort(T [] a, int fromIndex, int toIndex, Comparator cmp)

它根据由指定比较器引起的顺序对指定对象数组的指定范围进行排序。要排序的范围从索引fromIndex(含)到索引toIndex(不包含)。 (如果fromIndex == toIndex, 则要排序的范围为空。)该范围中的所有元素必须可以由指定的比较器相互比较(即c.compare(e1, e2)不得对任何元素e1抛出ClassCastException和范围内的e2)。

Java并行数组排序示例

import java.util.Arrays;

public class ParallelArraySorting {

public static void main(String[] args) {

// Creating an integer array

int[] arr = {5, 8, 1, 0, 6, 9};

// Iterating array elements

for (int i : arr) {

System.out.print(i+" ");

}

// Sorting array elements parallel

Arrays.parallelSort(arr);

System.out.println("\nArray elements after sorting");

// Iterating array elements

for (int i : arr) {

System.out.print(i+" ");

}

}

}

输出:

5 8 1 0 6 9

Array elements after sorting

0 1 5 6 8 9

Java并行数组排序示例:传递开始和结束索引

在下面的示例中, 我们传递数组的开始索引和结束索引。第一个索引为包含索引, 结束索引为互斥索引, 即, 如果我们将0作为起始索引, 将4作为终止索引, 则只能排序0到3个索引元素。

如果开始索引>结束索引, 则抛出IllegalArgumentException。

如果起始索引<0或结束索引> a.length, 则抛出ArrayIndexOutOfBoundsException。

import java.util.Arrays;

public class ParallelArraySorting {

public static void main(String[] args) {

// Creating an integer array

int[] arr = {5, 8, 1, 0, 6, 9, 50, -3};

// Iterating array elements

for (int i : arr) {

System.out.print(i+" ");

}

// Sorting array elements parallel and passing start, end index

Arrays.parallelSort(arr, 0, 4);

System.out.println("\nArray elements after sorting");

// Iterating array elements

for (int i : arr) {

System.out.print(i+" ");

}

}

}

输出:

5 8 1 0 6 9 50 -3

Array elements after sorting

0 1 5 8 6 9 50 -3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值