过滤自定义列表时流收集器错误
Stream collector error on filtering the custom list
List<RuleData> ruleDataList = conflictRuleIds.stream()
.filter(conflictRuleId -> idsMap.containsKey(conflictRuleId))
.collect(Collectors.toList());
这是给我的错误
no instance(s) of type variable(s) exist so that String conforms to RuleData inference variable T has incompatible bounds: equality constraints: RuleData lower bounds: String
价格,我想做的是过滤conflicRuleIds列表,然后检查是否在地图或not.and最后收集到列表
idsMap
包含 key->value as [string,RuleData]
和 conflictingRuleIds
是一个字符串列表
对于地图中每个匹配的 ID,我必须为地图中的相应键添加值。类似于 .map() 函数
您需要使用 map()
将数据从 id
字符串转换为 RuleData
,方法是从 idsMap
.
获取
List<RuleData> ruleDataList = conflictRuleIds.stream()
.filter(conflictRuleId -> idsMap.containsKey(conflictRuleId))
.map(conflictRuleId -> idsMap.get(conflictRuleId))
.collect(Collectors.toList());
也许这是个人喜好问题,但我会首先遍历映射条目和过滤器条目,列表中存在哪个键,而不是开始遍历列表元素:
List<RuleData> ruleDataList = idsMap.entrySet().stream()
.filter(entry -> conflictRuleIds.contains(entry.getKey()))
.map(Map.Entry::getValue)
.collect(Collectors.toList());
如果没有其他反对意见,我会使用 Set
作为 conflictRuleIds
而不是 List
。
List<RuleData> ruleDataList = conflictRuleIds.stream()
.filter(conflictRuleId -> idsMap.containsKey(conflictRuleId))
.collect(Collectors.toList());
这是给我的错误
no instance(s) of type variable(s) exist so that String conforms to RuleData inference variable T has incompatible bounds: equality constraints: RuleData lower bounds: String
价格,我想做的是过滤conflicRuleIds列表,然后检查是否在地图或not.and最后收集到列表
idsMap
包含 key->value as [string,RuleData]
和 conflictingRuleIds
是一个字符串列表
对于地图中每个匹配的 ID,我必须为地图中的相应键添加值。类似于 .map() 函数
您需要使用 map()
将数据从 id
字符串转换为 RuleData
,方法是从 idsMap
.
List<RuleData> ruleDataList = conflictRuleIds.stream()
.filter(conflictRuleId -> idsMap.containsKey(conflictRuleId))
.map(conflictRuleId -> idsMap.get(conflictRuleId))
.collect(Collectors.toList());
也许这是个人喜好问题,但我会首先遍历映射条目和过滤器条目,列表中存在哪个键,而不是开始遍历列表元素:
List<RuleData> ruleDataList = idsMap.entrySet().stream()
.filter(entry -> conflictRuleIds.contains(entry.getKey()))
.map(Map.Entry::getValue)
.collect(Collectors.toList());
如果没有其他反对意见,我会使用 Set
作为 conflictRuleIds
而不是 List
。