gpt4 book ai didi

Java : Arrays. 使用非标准比较器对 int[] 进行并行排序

转载 作者:行者123 更新时间:2023-12-02 10:56:46 28 4
gpt4 key购买 nike

对于当前的实现,我使用整数数组 Integer[] 来使用外部比较器。该顺序不是“自然”顺序,而是外部定义的顺序。

Arrays.parallelSort(Integer[] array, Comparator<T> cmp);

有没有办法将parallelSort与整数数组、int[]和用户定义的比较器一起使用?

相反,类似:

Arrays.parallelSort(int[] array, IntComparator cmp);

性能是问题(想想你是否有 10mio 整数)

最佳答案

如果您想在整数数组上使用标准 Java SE Arrays.parallelSort(...) 方法的自定义比较器,那么它必须是 Integer[] 而不是 int[]

这是一个示例(未经测试/基于https://stackoverflow.com/a/33045466/139985)

int[] ia = {99, 11, 7, 21, 4, 2};
ia = Arrays.stream(ia).
boxed().
parallel().
sorted((a, b) -> b.compareTo(a)). // sort descending
mapToInt(i -> i).
toArray();

使用流从 int[] 转换为 Integer 并返回。

还有使用第三方库的各种其他替代方案:

不幸的是,上述问题的答案都没有使用并行排序,但可能有其他选择。

关于Java : Arrays. 使用非标准比较器对 int[] 进行并行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51670500/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com