Я пытаюсь использовать приоритетную очередь в своем коде, и по какой-то причине, когда я удаляю объекты, они не по порядку. Вы знаете, что я делаю неправильно? Вот мой код:
конструктор:
recordedsong = new PriorityQueue<recordedNote>(50, new Comparator<recordedNote>()
{
public int compare(recordedNote n1, recordedNote n2)
{
long l = n1.rt()-n2.rt();
int i = (int)l;
return i;
}
});
где каждая записанная заметка имеет длинное значение, возвращаемое методом rt().
Но когда я звоню
while (!Song.isEmpty())
{
recordedNote temp = (recordedNote)Song.remove();
а затем напечатайте temp.rt() для каждого, все числа не по порядку. И не просто в обратном порядке, а повсюду, например, 1103, 0, 500, 0, 220 таких порядков.
Вы видите, что-нибудь не так с моим конструктором?
Спасибо!
add()
илиoffer()
для вставки в очередь? - person Joe Phillips   schedule 08.02.2011