PriorityQueue
PriorityQueue保存队列元素的顺序并不是按加入队列的顺序,而是按队列元素的大小进行重新排序。因此当调用peek方法或者poll方法来取出队列中的元素时,并不是取出最先进入队列的元素,而是取出队列中最小的元素。
poll(); //获取队列头部的元素,并删除该元素,如果此队列为空,则返回null。
Queue
Queue用于模拟了队列这种数据结构,队列通常是指“先进先出”(FIFO)的容器
import java.util.PriorityQueue;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int array[]=new int[n];
for(int i=0;i<n;i++)
{
array[i]=sc.nextInt();
}
PriorityQueue<Integer> M = new PriorityQueue<>();
for(int i=0;i<n;i++){
M.add(array[i]);
}
int weight = 0;
while(M.size()>1){
int data = M.poll()+M.poll();
weight+=data;
M.add(data);
}
M.poll();
System.out.println(weight);
}
}