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