java - 如何使用 java Stream API 查找中值

标签 java java-8 java-stream

如何使用 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/

相关文章:

java - PostConstruct 未在 junit 中调用

java - 使用 Criteria api 查找半径内的坐标

java - 为什么 java.util.function 不为所有原始类型定义专门的功能接口(interface)?

java 将一种可选类型转换为另一种可选类型

java - 将一系列整数分组为函数的答案

java - 使用流递归展平列表

java - 如何隐藏Android键盘输入框

java - 如何在 if else 语句中表达一系列整数?

Java 8 Comparator比较不链接

java - Stream.map 未转换为流的 Stream