java実用的な方法の整理(27)——PriorityQueは最小のヒープと最大のヒープを実現します。

1285 ワード

1,PriorityQueデフォルトで実現したのは最小の山です。
import java.util.PriorityQueue;

/**
* @author Manduner_TJU
* @version     :2019 4 10   4:51:00
*/
public class Test9 {
	public static void main(String[] args) {
		int[] a = {45,36,18,53,72,30,48,93,15,35};
		//1,         ,    natural ordering  (    ,  ,       )
		PriorityQueue minHeap = new PriorityQueue();
		
		for(int i=0;i
2,コンパレータで最大ヒープを実現
import java.util.Comparator;
import java.util.PriorityQueue;

/**
* @author Manduner_TJU
* @version     :2019 4 10   4:51:00
*/
public class Test9 {
	public static void main(String[] args) {
		int[] a = {45,36,18,53,72,30,48,93,15,35};
		//2,       ,     
		PriorityQueue maxHeap = new PriorityQueue(new Comparator() {

			@Override
			public int compare(Integer o1, Integer o2) {
				/**         、     .
				 *(1)   return o1.compareTo(o2)    return o1-o2    
				 *(2)   return o2.compareTo(o1)   return o2-o1    
				 */
				return o2.compareTo(o1);
			}
			
		}) ;
		
		for(int i=0;i