如何使用 java Stream API 查找中值:
例如,我有以下数组 int []arr ={0,1,2,4,6,5,3};
有没有一种方法以及使用 java Stream API 查找中值的最佳方法是什么;
int findMedian() {
int []arr ={0,1,2,4,6,5,3};
IntStream.of(arr).sorted() // what I have to do here
return 0;
}
你认为如果我将大数组改为并行流,它会更快吗?排序会并行吗?
最佳答案
我建议您将数组传递给 findMedian
(由于它不访问任何字段,因此将其设为静态)。然后您可以对其进行排序,将其转换回数组并返回一半长度的元素。就像,
static int findMedian(int[] arr) {
return IntStream.of(arr).sorted().toArray()[arr.length / 2]);
}
或,跳过
许多元素并将其限制
为第一个结果。就像,
return IntStream.of(arr).sorted().skip(arr.length / 2).limit(1);
关于java - 如何使用 java Stream API 查找中值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52527199/