java如何将对象arraylist转换为hashmap,其中键和值是对象属性
我有一个对象数组列表,如下所示
List<Model> list= new ArrayList<Model>();
模型对象有两个属性,它们都是整数
- 身份证
- 计数
现在,我想将此arraylist转换为哈希映射,其中id是键,count是值:
Map<Integer,Integer> convertedmap=new HashMap<Integer,Integer>();
谢谢你的帮助
你可以在下面搜索框中键入要查询的问题!
我有一个对象数组列表,如下所示
List<Model> list= new ArrayList<Model>();
模型对象有两个属性,它们都是整数
现在,我想将此arraylist转换为哈希映射,其中id是键,count是值:
Map<Integer,Integer> convertedmap=new HashMap<Integer,Integer>();
谢谢你的帮助
# 1 楼答案
对列表进行迭代,并在映射中为每个迭代的模型对象添加新元素:
注意:如果
list
有Model
个实例的asid
字段值相同,则列表中具有相同id的最后一个实例将覆盖已创建映射中的前一个实例你可以检查一下
否则,您也可以使用Java 8的
Collectors.toMap()
方法执行该作业:它比经典的循环迭代有优势
如果在映射中用作键的
id
值在list
中有重复的值,它将上升IllegalStateException : Duplicate key...
,而不是默默地覆盖映射# 2 楼答案
您可以使用for循环执行此操作
# 3 楼答案
首先,用适当的setter/getter完成POJO类
Model
,然后 您可以迭代整个ArrayListlist
,并将值放入Mapconvertedmap
中,如下所示: