Приветствую Вас ГостьВторник, 14.05.2024, 19:17

Программирование на Java, Android, Delphi


Блог

Главная » 2013 » Март » 22 » Collections Framework: класс PriorityQueue
16:28
Collections Framework: класс PriorityQueue
Класс PriorityQueue является очередью с приоритетом, поддерживает интерфейс Queue. Элементы добавляются в очередь на основе компаратора. Объект коллекции должен поддерживать интерфейс Comparable. Примеры работы с коллекцией:
class Coordinate implements Comparable <Coordinate> {
private int X;
private int Y;

public Coordinate(int X, int Y) {
this.X = X;
this.Y = Y;
}

@Override
public String toString() {
return "X: " + X + ", Y: " + Y;
}

@Override
public boolean equals(Object obj) {
if(obj instanceof Coordinate){
Coordinate c = (Coordinate)obj;
return c.X == this.X && c.Y == this.Y;
}else {
return super.equals(obj);
}
}

@Override
public int hashCode() {
int hash = 7;
hash = 59 * hash + this.X;
hash = 59 * hash + this.Y;
return hash;
}

@Override
public int compareTo(Coordinate o) {
return this.X - o.X;
}
}

//выводим все содержимое очереди в текстовую область (при этом очередь очищается)
void RemoveAllQueueElements(Queue <Coordinate> q){
Coordinate c = null;
c = q.poll();
while(c != null) {
jTextArea1.append("Удалили из очереди: " + c.toString() + "\n");
c = q.poll();
}
}

void IteratorToTextArea(Iterator <Coordinate> iter, JTextArea ta){
if (iter != null & ta != null){
while(iter.hasNext()){
ta.append(iter.next().toString() + "\n");
}
}
};



private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
PriorityQueue <Coordinate> pq = new PriorityQueue<Coordinate>();
Queue <Coordinate> qitf = pq;

Random rnd = new Random();
int value = 0;
for(int i = 0; i < 20; i ++){
value = rnd.nextInt(50);
qitf.add(new Coordinate(value, value));
}

//несмотря на то, что элементы помещаются в очередь отсортированными,
//итератор не выводит очередь в отсортированном виде
jTextArea1.append("Выводим через итератор неотсортированные данные\n");
IteratorToTextArea(qitf.iterator(), jTextArea1);
//а вот методы интерфейса Queue по извлечению элементов
//достают из очереди отсортированные данные
jTextArea1.append("Выводим через poll() отсортированные данные\n");
RemoveAllQueueElements(qitf);
Категория: Java (Библиотека, пакеты Java) | Просмотров: 838 | Добавил: alex | Теги: заказать программное обеспечение, программист в Рыбинске, PriorityQueue, Collections Framework, Java, разработка программ в Рыбинске | Рейтинг: 5.0/1
Категории раздела
Java (Общие вопросы) [17]
Java (Библиотека, пакеты Java) [17]
Java (Разработка программного обеспечения на Java) [5]
Java (Среда разработки NetBeans) [5]
JSF + PrimeFaces [21]
Java EE [11]
Разное [3]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Поиск
Календарь
«  Март 2013  »
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
25262728293031
Архив записей