我有一个类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)