在Java中使用优先级队列返回中间值

在Java中使用优先级队列返回中间值,java,queue,priority-queue,Java,Queue,Priority Queue,我目前遇到了一个问题,比如说我想找到用户输入的中间值,Java中是否有一个函数可以查看或返回中间值 import java.util.*; 公开课{ 公共静态扫描仪控制台=新扫描仪(System.in); 公共静态void main(字符串[]args){ int arr; PriorityQueue队列B=新的PriorityQueue(); 对于(int j=0;j只需弹出PQ值的一半。最后一个弹出的值是中间的值 N为偶数的情况留给读者作为练习 当然,这是假设“middle”表示“medi

我目前遇到了一个问题,比如说我想找到用户输入的中间值,Java中是否有一个函数可以查看或返回中间值


import java.util.*;
公开课{
公共静态扫描仪控制台=新扫描仪(System.in);
公共静态void main(字符串[]args){
int arr;
PriorityQueue队列B=新的PriorityQueue();

对于(int j=0;j只需弹出PQ值的一半。最后一个弹出的值是中间的值

N为偶数的情况留给读者作为练习


当然,这是假设“middle”表示“median”。如果表示“mean”,则表示使用了错误的数据结构:应该使用数组,对其进行排序,然后计算
(数组[0]+数组[last])/2

为什么要使用优先级队列?中间值是什么意思?哦,拜托,各位。问题非常清楚。@Falmari我使用优先级队列,以便它可以预先对输入的整数进行排序。您只需获得O(n)中的最小值和最大值即可时间。或者您可以使用快速排序的变体来确定中值。
(数组[0]+数组[last])/2
这不是平均值
import java.util.*;
public class PQueue {

    public static Scanner console = new Scanner(System.in);

    public static void main(String[] args) {

        int arr;

        PriorityQueue<Integer> queueB = new PriorityQueue<Integer>();
        for(int j=0; j<=4; j++)
        {
            System.out.println("Input Intergers: ");
            arr = console.nextInt();
            queueB.add(arr);
        }
        System.out.print(queueB.peek());    
    }
}