小编KSI*_*KSI的帖子

PriorityQueue 以错误的顺序返回元素

我有一个类Person,它有两个属性 Name( String) 和 Weight( Integer)。

我想根据它们的权重以降序将元素存储在 PriorityQueue 中,即元素在队列中的顶部权重越高。

到目前为止我已经尝试过这个:

PriorityQueue<Person> personPriorityQueue = new PriorityQueue<Person>((a,b)-> Integer.compare(a.getWeight(), b.getWeight()));
        personPriorityQueue.add(new Person(40,"N1"));
        personPriorityQueue.add(new Person(60,"N2"));
        personPriorityQueue.add(new Person(50,"N3"));

        personPriorityQueue.forEach(s-> System.out.println(s.getName()));
Run Code Online (Sandbox Code Playgroud)

我得到的输出是:

N1
N2
N3
Run Code Online (Sandbox Code Playgroud)

我应该得到:

N2
N3
N1
Run Code Online (Sandbox Code Playgroud)

java priority-queue java-8

2
推荐指数
1
解决办法
179
查看次数

标签 统计

java ×1

java-8 ×1

priority-queue ×1