如何使用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;
}
你觉得如果我把大数组改为并行流,会不会更快?排序将是并行的吗?
发布于 2018-09-27 07:13:27
我建议您将数组传递给findMedian
(因为它不访问任何字段,所以将其设为静态)。然后,您可以对其进行排序,将其转换回数组,并返回长度的一半的元素。喜欢,
static int findMedian(int[] arr) {
return IntStream.of(arr).sorted().toArray()[arr.length / 2]);
}
或,对这么多元素进行skip
,并将其转换为第一个结果。喜欢,
return IntStream.of(arr).sorted().skip(arr.length / 2).limit(1);
https://stackoverflow.com/questions/52527199
复制相似问题