我正在查看有關收集器的Java API。在Java API中分組是什麼意思以及如何使用它?
public static <T,K,D,A,M extends Map<K,D>> Collector<T,?,M> groupingBy(Function<? super T,? extends K> classifier,
Supplier<M> mapFactory,
Collector<? super T,A,D> downstream)
類型參數:
筆 - 鍵
A的種類 - - 輸入元件
K的類型的中間下游收集器的積聚類型爲
d - 的類型所得到的地圖的
參數 - 下游還原
M的結果類型:
分類 - 分類器函數映射輸入元素鍵
下游的- 執行下游還原的收集器
mapFactory - 一個函數,它被調用時,產生所需類型的一個新的空地圖
返回:
實現級聯組由操作
從第一收集器代碼行,我知道這是一個公共靜態方法,但<T, K, D, A, M extends Map<K, D>>
是什麼意思?
然後從Collector<T, ?, M>
,我可以理解它返回一個收集器,但是什麼是?
的含義。
此外,我去了其中一個參數Supplier
的頁面,由於它是一個功能接口,它只有一個抽象方法,稱爲get
,但我根本不知道如何使用它。而我所經歷的這本書教導我們使用TreeMap::new
。
我的困惑在於,參數是如何實現接口的,但我們能夠使用方法引用呢?
在此先感謝!
這對於單個問題可能太寬泛。你在這裏問過至少兩個,如果不是三個問題。 :-)泛型類型參數如何工作,如何將方法映射到函數接口... –
例如,'>只是表示該方法將使用泛型類型參數稱爲'T','K','D','A'和'M',並且'M'必須擴展'Map '。但是這並不能回答你的整體問題...... –