# 将一个`List
利用JAVA streamAPI
```java
Map
.collect(Collectors.toMap(obj-> obj.getId(), obj-> obj));
```
```
```
-----------------以下过期-------------
~~分两种情况~~
1. ~~O.成员为可访问,使用`obj.getClass().getDeclaredField(indexName)`。~~
2. ~~O.成员为不可访问,需要编写O.get成员方法,使用`obj.getClass().getMethod("get" + toUpperCase(indexName), null).invoke(obj)`。~~
```java
public static
listToHashMap(String indexName, List
HashMap
for (O obj : list) {
Field field = obj.getClass().getDeclaredField(indexName);
try {
map.put((K) field.get(obj), obj);
} catch (IllegalAccessException e) {
K key = (K) obj.getClass().getMethod("get" + toUpperCase(indexName), null).invoke(obj);
map.put(key, obj);
}
}
return map;
}
public static String toUpperCase(String str) {
return str.substring(0, 1).toUpperCase() + str.substring(1);
}
```