使用优先级堆/比较器时输出不规则
我正在尝试使用优先级队列,并尝试以相反的顺序排列数字[降序]。
我实现了一个比较器,并使用与自然顺序相反的约定,希望我能得到相反顺序的数字。
public static void main(String[] args)
{
PriorityQueue<Integer> Descending = new PriorityQueue<Integer>(10,stats.new
minComparator());
Descending.add(5);
Descending.add(2);
Descending.add(7);
while(Descending.size() > 0)
{
System.out.print(Descending.remove());
}
}
class minComparator implements Comparator<Integer>
{
@Override
public int compare(Integer int1, Integer int2)
{
if(int1.intValue() < int1.intValue())
return 1;
else if(int1.intValue() > int1.intValue())
return -1;
else
return 0;
}
}
这是输出:
5 7 2
这既不是升序也不是降序!。有人可以帮我吗?
谢谢!
I am trying to use a priority Queue and was trying to get the numbers arranged in the reverse order [descending orders].
I implemented a comparator, and used the reverse convention as compared to natural order hoping that I would get numbers in reverse order.
public static void main(String[] args)
{
PriorityQueue<Integer> Descending = new PriorityQueue<Integer>(10,stats.new
minComparator());
Descending.add(5);
Descending.add(2);
Descending.add(7);
while(Descending.size() > 0)
{
System.out.print(Descending.remove());
}
}
class minComparator implements Comparator<Integer>
{
@Override
public int compare(Integer int1, Integer int2)
{
if(int1.intValue() < int1.intValue())
return 1;
else if(int1.intValue() > int1.intValue())
return -1;
else
return 0;
}
}
Here is the output:
5 7 2
This is neither ascending nor descending !. Can someone please help me out.
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我可以建议简化吗?
May I suggest a simplification?
您将相同的数字
int1
与其本身进行比较,而不是int1
和int2
You compare the same number
int1
to itself instead ofint1
andint2