1,场景:对于对比数据,查询重复之类。多次调接口查询会损耗性能,所以改为查询全部,放到list里面。然后 转成map
每次对比时去get 是否有值。这样相比多次调接口查询,性能要好一点。
public static <K, V> Map<K, V> listToMapForSingleValue(List<V> dataList, String groupField) {
Map<K, V> resultMap = new HashMap<>();
if(CollectionUtils.isNotEmpty(dataList)){
for(V v : dataList){
try {
K k = (K) FieldUtils.getDeclaredField(v.getClass(), groupField, true).get(v);
resultMap.put(k, v);
} catch (IllegalAccessException e) {
throw new MdmAppException("反射字段失败:" + e.getMessage(), e);
}
}
}
return resultMap;
}