赞
踩
使用比较器Comparator<? super E> comparator,并通过比较器,以适当的方式对排序顺序进行比较,下面是一个简单的例子:
public class StringLengthComparator implements Comparator<String>{
@Override
public int compare(String o1, String o2) {
if (o1.length() < o2.length()) {
return -1;
}
if (o1.length() > o2.length()) {
return 1;
}
return 0;
}
}
public class Test {
public static void main(String[] args) {
Comparator<String> comparator = new StringLengthComparator();
PriorityQueue<String> queue = new PriorityQueue<String>(10,comparator);
queue.add("short");
queue.add("very long indeed");
queue.add("medium");
while(queue.size() != 0) {
System.out.println(queue.remove());
}
}
}
输出的结果为:
short
medium
very long indeed
PriorityQueue中add和offer方法的不同之处:
offer属于Queue<E>,add属于Collection<E>接口,除了这个,这两个方法做的相同的事情---插入某个元素到PriorityQueue。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。