JAVA Queue队列
Person类public class Person { @Override public String toString() { return this.getName()+" "+this.getAge(); } private String name; private int age; public Person(String name, int age) { this.age = age; this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } 比较器类import java.util.Comparator;public class Comparator1 implements Comparator{ private int compare(String name1, String name2){ return name1.compareTo(name2); } private int compare(int age1, int age2){ if(age1 > age2) return 1; else if(age1 == age2) return 0; else return -1; } public int compare(Person p1, Person p2) {//接口的方法 String name1 = p1.getName(); String name2 = p2.getName(); int age1 = p1.getAge(); int age2 = p2.getAge(); return (compare(name1, name2) == 0 ? compare(age1, age2) : compare(name1, name2)); } } 测试类import java.util.Iterator;import java.util.PriorityQueue;public class Tester { public static void main(String[] args) { Person p1 = new Person("a", 4); Person p2 = new Person("b", 2); Person p3 = new Person("c", 1); Person p4 = new Person("a", 1); Person p5 = new Person("a", 6); Person p6 = new Person("a", -1); PriorityQueue pq = new PriorityQueue(20 ,new Comparator1()); pq.add(p1); pq.add(p2); pq.add(p3); pq.add(p4); pq.add(p5); pq.add(p6); Iterator it = pq.iterator(); while(it.hasNext()){ System.out.println(it.next()); } while(!pq.isEmpty()){ System.out.println(pq.poll());//前面对toString()进行了重载 System.out.println("sdfsd"); }//这里要注意,对优先队列用迭代器遍历,顺序不是按照优先队列的顺序输出 } }?