1 回答
TA贡献1853条经验 获得超18个赞
希望我的问题是正确的:
Map<String, String> collect2 =
dataMap.entrySet()
.stream()
.map(e -> elements.stream()
// this will search for the first element of the List matching
// the value of the current Entry, if exists
.filter(el -> el.getField().startsWith(e.getValue()))
.findFirst()
// this will create a new Entry having the original key and the
// value obtained from the List
.map(el -> new SimpleEntry<>(e.getKey(),el.getField()))
// if findFirst found nothing, map to a null element
.orElse(null))
.filter(Objects::nonNull) // filter out all the nulls
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
您正在处理 input 的条目Map,并仅保留具有与 的元素匹配的值的条目List(通过filter(),尽管有一些语法错误),但您需要将map输入条目转换为包含所需新值的新条目。
上面的代码产生Map
{d1=DATA1_text1, d2=DATA2_text2}
对于给定的输入。
添加回答
举报