根据对象主键名,获取主键值,将List转换为Map,Key为主键值,Value为对象,快速定位对象,转换之后便于在Map中根据主键值快速查找对象
//List转Map
public static <K, V> Map<K, V> getMapByList(List<V> list, String field) {
Map<K, V> map = new HashMap<>();
if (list == null) {
return map;
}
for (V obj : list) {
Class<?> clazz = obj.getClass();
Field f;
K fieldValue = null;
try {
f = clazz.getDeclaredField(field);
f.setAccessible(true);
fieldValue = (K) f.get(obj);
} catch (Exception e) {
e.printStackTrace();
}
map.put(fieldValue, obj);
}
return map;
}