Boa noite pessoal.
Eu estou a fazer um trabalho de simulação de elevadores e tenho que criar uma fila de pessoas que estão à espera do elevador mas nessa fila há pessoas com prioridade, ou seja, idosos<crianças<adultos. Eu já consegui criar a fila mas agora não sei como manter esta fila sempre com esta ordem. E houve um amigo meu que me disse que achava que havia filas com prioridade. Alguem sabe-me indicar quais?
import java.util.*;
class Pessoa {
public int idade;
public String nome;
public Pessoa (String nome_, int idade_) { idade = idade_; nome = nome_; }
public String toString() { return "[" + nome + ", " + idade + " anos]"; }
}
class TestePriorityQueue {
public static void main(String[] args) {
// Esta é uma fila de prioridade onde os mais idosos ficam à frente dos mais novos
PriorityQueue<Pessoa> pq = new PriorityQueue<Pessoa> (1, new Comparator<Pessoa>() {
public int compare (Pessoa p1, Pessoa p2) {
return p2.idade - p1.idade;
}
});
pq.add (new Pessoa ("Matusalem", 969));
pq.add (new Pessoa ("Noé", 950));
pq.add (new Pessoa ("Abraão", 175));
pq.add (new Pessoa ("Adão", 930));
pq.add (new Pessoa ("João Batista", 33));
pq.add (new Pessoa ("Jesus", 33));
// Isto imprime os mais idosos antes dos mais jovens
for (Pessoa p = pq.poll(); p != null; p = pq.poll()) {
System.out.println (p);
}
}
}
P.S. Com que idade João Batista morreu mesmo? Chutei 33 mas não sou teólogo e a Wikipedia não me disse a idade exata.
Tenta a Bíblia. Dizem que é um bom livro… hehehe.