Нерегулярный вывод при использовании приоритетной кучи / компаратора - PullRequest
0 голосов
/ 11 июня 2011

Я пытаюсь использовать приоритетную очередь и пытаюсь расположить числа в обратном порядке [по убыванию].

Я реализовал компаратор и использовал обратное соглашение по сравнению с естественным порядком, надеясь, что я получу числа в обратном порядке.

 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

Это ни восходящий, ни нисходящий!Может кто-нибудь, пожалуйста, помогите мне.

Спасибо!

Ответы [ 2 ]

4 голосов
/ 11 июня 2011

Могу ли я предложить упрощение?

@Override
public int compare(Integer int1, Integer int2)
{
    return int2.compareTo( int1 );
}
2 голосов
/ 11 июня 2011

Вы сравниваете одно и то же число int1 с собой вместо int1 и int2

int1.intValue() < int1.intValue()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...