通過分組我有兩個地圖的Java 8個流/收藏家與地圖
scoreMap<String,Float>
具有組名作爲關鍵字及其 得分爲價值具有關鍵和相關的註釋閾值thresholdMap<Float,String>
作爲價值。- 我需要拿出
Map<String,List<String>>
這個。閱讀,因爲Map<comment,List of groups its applicable to>
或Map<group, comment>
也很好。
的邏輯是簡單地採取從score
scoresMap
,並在threshold
地圖比較它threshold
。依賴於它的下降(即高於高,高,中,或低於中等之間,挑選從thresholdMap
相關評論
大概是這樣的:
BiFunction<Map<String,Float>, Map<Float,String>, Map<String,String>> or
BiFunction<Map<String,Float>, Map<Float,String>, Map<String,List<String>>>
我還沒有想出如何使用Predicate
,檢查三個條件做groupingBy
,所以道歉,不爲別的,樣品Stream
代碼非流代碼看起來像這樣(不使用地圖):
if(orgScorePct >= HI_THRESHOLD)
return "ORG_HI_SCORE_COMMENT";
if(orgScorePct < HI_THRESHOLD && orgScorePct > MED_THRESHOLD)
return "ORG_MED_SCORE_COMMENT";
return "ORG_LOW_SCORE_COMMENT";
感謝@ Tunaki的出色答案,我想我還會寫下另一個選項,我想要爲需要它的任何人獲取Map:BiFunction