PriorityQueue.poll (); - PullRequest
       11

PriorityQueue.poll ();

1 голос
/ 01 ноября 2011

Есть ли у кого-нибудь предложения относительно того, как лучше всего изменить функцию compareTo объекта, чтобы при вызове функции poll () в родительской очереди приоритетов возвращалось наименьшее неотрицательное значение, а не наименьшее значениев общем?

Скажем, у нас есть класс Number, в котором хранится любое число, отрицательное или неотрицательное, но я не хочу, чтобы данные из объекта этого класса возвращались, если он отрицательный.

Ответы [ 2 ]

3 голосов
/ 01 ноября 2011

Оберните свою очередь внутри объекта-обертки и никогда не добавляйте отрицательные значения.Тогда вы можете использовать свою очередь как обычно, зная, что самое низкое значение будет неотрицательным.Я не компилировал это или что-то еще, но это идея. Вот пример этого.

1 голос
/ 02 ноября 2011

Хорошо, давайте немного разберемся:

  1. Вы хотите поставить отрицательные числа в вашу очередь?
  2. Вы не хотите, чтобы эти числа возвращались на всех при выводе из очереди элементов?
  3. Что еще вы хотите сделать с теми числами, которые являются в очередино никогда не будет снова оставлять очередь?

Кстати, в Java очередь может содержать только объекты, поэтому вы можете использовать null вместо некоторого другого магического значения.

Я предполагаю, что вам нужно разрешить дублирование значений в вашей реализации.Если нет, то взгляните на реализации SortedSet.

...