java 对象两个属性转list map
时间: 2023-11-22 16:46:54 浏览: 170
您可以使用Java中的Map和List来实现将对象的两个属性转换为List Map的功能。具体实现可以参考以下代码:
```java
public static List<Map<String, Object>> convertPropertiesToListMap(List<Object> objList, String propertyName1, String propertyName2) {
List<Map<String, Object>> resultList = new ArrayList<>();
for (Object obj : objList) {
Map<String, Object> map = new HashMap<>();
map.put(propertyName1, getProperty(obj, propertyName1));
map.put(propertyName2, getProperty(obj, propertyName2));
resultList.add(map);
}
return resultList;
}
public static Object getProperty(Object obj, String propertyName) {
try {
PropertyDescriptor pd = new PropertyDescriptor(propertyName, obj.getClass());
Method method = pd.getReadMethod();
return method.invoke(obj);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
```
其中,convertPropertiesToListMap方法接收一个对象列表和两个属性名,返回一个List Map,其中每个Map表示一个对象的两个属性值。getProperty方法用于获取对象的属性值。
示例代码:
```java
List<User> userList = new ArrayList<>();
userList.add(new User("Tom", 18));
userList.add(new User("Jerry", 20));
List<Map<String, Object>> listMap = convertPropertiesToListMap(userList, "name", "age");
System.out.println(listMap);
```
输出结果:
```
[{name=Tom, age=18}, {name=Jerry, age=20}]
```
阅读全文