本文介紹了Java:PriorityQueue初始化的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我正在嘗試理解啟動優先級隊列的以下行:
PriorityQueue<int[]> pq = new PriorityQueue<>((a, b) -> b[1] - a[1]);
與文檔中的構造函數部分相比,
https://docs.oracle.com/javase/7/docs/api/java/util/PriorityQueue.html
我不知道它使用的是哪個構造函數。有誰能分享一下我的想法嗎?
另外,是否有文檔可以更好地解釋/定義語法(a, b) -> b[1] - a[1]
…雖然我能猜到是什么意思。
非常感謝!
推薦答案
您的PriorityQueue
構造使用了1.7中尚未存在的構造函數,該構造函數是您鏈接的Java的版本。
它使用為Java 1.8添加的constructor that takes a Comparator
,該值與您提供的lambda表達式匹配。
創建具有默認初始容量的
PriorityQueue
,其元素根據指定的比較器排序。發件人:
1.8
Lambda expressions是在Java 1.8中引入的。在這里,基本上有2個參數和表達式與函數接口匹配–Comparator
。
這篇關于Java:PriorityQueue初始化的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,