Map<String, String> fieldMap = dictFieldList.stream().collect(Collectors.toMap(DictData::getCode, DictData::getName, (a, b) -> a));
时间: 2024-04-19 13:29:06 浏览: 122
这段代码使用Java 8的Stream API将一个包含DictData对象的列表(dictFieldList)转换为一个包含Code和Name的映射关系的Map对象。具体来说,代码中使用Collectors.toMap方法将DictData对象的getCode方法返回的字符串作为键,DictData对象的getName方法返回的字符串作为值进行映射。如果遇到重复的键,则使用第三个参数指定的合并函数来解决冲突,这里的合并函数是简单地选择旧值保留。最终,将得到一个类型为Map<String, String>的fieldMap对象。
相关问题
List<DictData> dictFieldList = this.getEduContext().getEduSystemCache().getDictDataByDictType("EXPERT_FIELD"); Map<String, String> fieldMap = dictFieldList.stream().collect(Collectors.toMap(DictData::getCode, DictData::getName, (a, b) -> a));
这段代码首先通过调用getEduContext()方法获取到一个EduContext对象,然后通过该对象调用getEduSystemCache()方法获取到一个EduSystemCache对象。接下来,使用getDictDataByDictType("EXPERT_FIELD")方法从EduSystemCache对象中获取到一个包含DictData对象的列表dictFieldList。
然后,利用Java 8的Stream API和Collectors.toMap方法将dictFieldList列表转换为一个包含Code和Name的映射关系的Map对象。具体来说,代码中使用DictData::getCode作为键提取器,DictData::getName作为值提取器进行映射。如果遇到重复的键,则使用第三个参数指定的合并函数来解决冲突,这里的合并函数是简单地选择旧值保留。
最终,将得到一个类型为Map<String, String>的fieldMap对象,其中键为DictData对象的getCode方法返回的字符串,值为DictData对象的getName方法返回的字符串。
List<String> realValueFieldIds = accountFieldCollectionMap.values().stream().map(ConfAccountField::getFieldRelation).collect(Collectors.toList()); Map<String, ConfAccountField> fieldMap = MapUtil.transformUniqueIndexMap(confAccountFieldMap.values(), ConfAccountField::getFieldId); List<ConfAccountField> realSiteFields = realValueFieldIds.stream().map(fieldMap::get).filter(Objects::nonNull).distinct().collect(Collectors.toList());
这段代码使用了Java 8的Stream API,主要是对一些集合进行操作。具体来说,代码首先从一个名为accountFieldCollectionMap的Map中取出所有的值,即一个ConfAccountField对象的集合,然后对每个对象调用getFieldRelation方法,获取其关联的字段的ID,并将这些ID收集到一个List<String>中。
接下来,代码将confAccountFieldMap的所有值转化为一个Map<String, ConfAccountField>,其中键为ConfAccountField对象的getFieldId方法返回的ID,值为ConfAccountField对象本身。然后,代码从realValueFieldIds中取出每个ID,通过get方法从fieldMap中获取相应的ConfAccountField对象,如果对象存在且没有重复,则将其收集到一个List<ConfAccountField>中。
综上所述,这段代码的作用是根据一个Map中ConfAccountField对象的关联字段的ID,获取所有对应的ConfAccountField对象,并去除重复的对象。
阅读全文