<div class="iteye-blog-content-contain" style="font-size: 14px"></div>
package com.gaoyuan.priorityQueue;
import java.util.Date;
import java.util.PriorityQueue;
public class ER {
private static PriorityQueue<Person> lineup ;
public void addPatient(String name, int severity, Date time){
if(severity < 1){
severity = 1;
}else if(severity > 17){
severity = 17;
}
lineup.add(new Person(name,severity,time));
}
public String nextPatient(){
if(!lineup.isEmpty()){
return lineup.remove().getName();
}
return "Empty";
}
public boolean updatePatient(String name, int severity, Date time){
Object[] personArray = (Object[])lineup.toArray();
for(int i=0;i<personArray.length;i++){
Person person = (Person)personArray[i];
if(name.equals(person.getName())){
lineup.remove(new Person(person.getName(),person.getSeverity(),person.getDate()));
lineup.add(new Person(name,severity,time));
return true;
}
}
return false;
}
public ER(){
lineup = new PriorityQueue<Person>();
}
}
package com.gaoyuan.priorityQueue;
import java.util.Date;
public class Person implements Comparable<Person> {
private String name;
private int severity;
private Date date;
public Person(String name,int severity,Date date) {
this.name = name;
this.severity = severity;
this.date = date;
}
public Person(String name){
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSeverity() {
return severity;
}
public void setSeverity(int severity) {
this.severity = severity;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
@Override
public int compareTo(Person p) {
return p.severity - this.severity;
}
@Override
public String toString() {
return "Person [name=" + name + ", severity=" + severity + ", date="
+ date + "]";
}
}