如何在java中获得比较器的反转

Abh*_*tra 8 java generics heap priority-queue comparator

在一个方法中,我收到一个泛型object E extends Comparable<E>作为参数.现在我想创建两个优先级comparator队列.其中一个使用E和其他使用E使用相反的队列comparator(即如果E使用'<',那么第二个队列必须使用'> =').请告诉我如何创建两个这样的队列.

queue2=new PriorityQueue<E>(0,Collections.reverseOrder(e));
Run Code Online (Sandbox Code Playgroud)

我收到的错误reverseOrder不适用.

请帮忙

Bil*_*ill 5

你的对象E延伸java.lang.Comparable,但不是java.util.Comparator.

用比较器创建你的第一个队列,你将获得你的compareTo函数中的排序,然后创建一个java.util.Comparator反向比较(只需调用a.compareTo(b)然后否定结果)并用它创建你的第二个队列比较.