寻找解决方案,如果对象字段以地图值开头并保存到另一个地图,如何将列表中的对象与地图中的数据与条件进行匹配
我有带有一些数据的地图
Map<String, String> dataMap = new HashMap()
dataMap.put("d1", "DATA1")
dataMap.put("d2", "DATA2")
dataMap.put("d3", "DATA3")
和 DataElement 对象的列表
List<DataElement> elements = new ArrayList()
elements.add(new DataElement("TEXT1"))
elements.add(new DataElement("TEXT2"))
elements.add(new DataElement("DATA1_text1"))
elements.add(new DataElement("DATA2_text2"))
class DataElement {
public field;
public DataElement(String text){
this.field = text
}
public getField(){
return this.field
}
}
我正在尝试获取新的 Map,其中键是第一个映射中的值,值是列表中的对象(字段),条件是如果对象字段以映射值开头:结果应该是:
[d1=DATA1_text1, d2=DATA2_text2]
我的代码:
Map<String, String> collect2 = dataMap.entrySet().stream()
.filter({ map -> elements.stream()
.anyMatch({ el -> el.getField().startsWith(map.getValue()) })})
.collect(Collectors.toMap(KEY, VALUE))
慕容森
相关分类