Вопрос о приоритетных очередях Java - PullRequest
0 голосов
/ 15 апреля 2011

Я пытаюсь создать очередь, которая может принимать объекты типа X. У каждого из этих объектов X есть переменная типа int, называемая расстоянием.Как создать очередь с приоритетами, которая принимает объект типа X, но сортирует их по переменному расстоянию каждого объекта?

Ответы [ 3 ]

2 голосов
/ 15 апреля 2011

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

1 голос
/ 29 мая 2013

Вы можете использовать следующий компаратор:

import java.util.Comparator;

public class XComparator implements Comparator<X>
{
    @Override
    public int compare(X m, X n)
    {

        if (m.distance < n.distance)
        {
            return -1;
        }
        if (m.distance > n.distance)
        {
            return 1;
        }
        return 0;
    }
}

Вот как бы вы создали приоритетную очередь:

int initialCapacity = 20;
Comparator<X> comparator = new XComparator();
PriorityQueue<X> queue = new PriorityQueue<X>(initialCapacity, comparator);
0 голосов
/ 15 апреля 2011

Домашнее задание много?

Загляните на вики-страницу .

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

...