【发布时间】:2018-02-27 05:27:13
【问题描述】:
我有两张地图
-
scoreMap<String,Float>有一个组名作为键,它的 得分为价值 -
thresholdMap<Float,String>有一个阈值 作为价值的关键和相关评论。 - 我需要想出
Map<String,List<String>>从这里。读为Map<comment,List of groups its applicable to>或Map<group, comment>也可以。
逻辑很简单,就是从scoresMap中取出score,和threshold Map中的threshold比较。根据它落在哪里(即高于高、介于高和中或低于中,从thresholdMap 中选择相关评论。
大概是这样的:
BiFunction<Map<String,Float>, Map<Float,String>, Map<String,String>> or
BiFunction<Map<String,Float>, Map<Float,String>, Map<String,List<String>>>
我还没有弄清楚如何使用检查 3 个条件的 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";
【问题讨论】:
标签: java java-8 java-stream