list集合中包含多个具有相同属性的对象,将具有相同属性的对象汇总到一个map中,从而变成一个key对应多个值
时间: 2024-04-29 19:22:19 浏览: 74
好的,您需要将具有相同属性的对象汇总到一个map中。首先,您需要遍历list中的每个对象,然后以该属性的值为key,将具有相同属性值的对象放入一个list中,最后将所以的list作为value,放入map中即可。
以下是示例代码:
```java
public <T> Map<Object, List<T>> groupByProperty(List<T> list, String propertyName) {
Map<Object, List<T>> map = new HashMap<>();
for (T obj : list) {
try {
Object value = PropertyUtils.getProperty(obj, propertyName);
List<T> valueList;
if (map.containsKey(value)) {
valueList = map.get(value);
} else {
valueList = new ArrayList<>();
map.put(value, valueList);
}
valueList.add(obj);
} catch (Exception e) {
e.printStackTrace();
}
}
return map;
}
```
其中,`list`是包含多个具有相同属性的对象的list,`propertyName`是要汇总的属性名。此方法返回一个Map,其中key是属性的值,value是具有相同属性值的对象的list。
阅读全文