Java - Collections.binarySearch с PriorityQueue? - PullRequest
0 голосов
/ 22 мая 2010

Можно ли использовать метод Collections.binarySearch () для поиска элементов в PriorityQueue? Иначе, как я могу применить алгоритмы поиска к PriorityQueue?

У меня есть это (класс Evento реализует Comparable):

    public class PriorityQueueCAP extends PriorityQueue<Evento>{

       // (...)

       public void removeEventos(Evento evento){

           Collections.binarySearch(this, evento); // ERROR!

       }
    }

И я получил эту ошибку: «Метод binarySearch (List>, T) в типе Collections не применим для аргументов (PriorityQueueCAP, Evento)»

Почему?

Заранее спасибо!

Ответы [ 2 ]

4 голосов
/ 22 мая 2010

Не следует применять алгоритм поиска к приоритетной очереди. Очередь приоритетов предназначена для обеспечения эффективного доступа к элементу с наивысшим приоритетом в коллекции, и это все.

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

0 голосов
/ 22 мая 2010

В этом руководстве показано, как инициировать коллекцию, и возможные операции, которые вы можете над ней выполнять. Вы должны помнить, что сказал Эриксон.

...