我有一个名为ArrayList(Hashmap<String, String>)
的用户,每个Hashmap<String, String>
包含用户的个人资料,例如name
,id
,phone
等。
我想将此ArrayList
转换为一些简单的ArrayList
。例如,我想要一个ID ArrayLis
t,其中包含可以在主ArrayList
中找到的所有ID。有功能吗?
答案 0 :(得分:2)
您可以使用Stream
s编写这样的函数:
public static List<String> getPropertyList(List<Map<String,String>> users, String key)
{
return users.stream()
.map(m -> m.get(key))
.collect(Collectors.toList());
}
然后通过以下方式调用它:
List<String> userIds = getPropertyList(users,"id");
List<String> userNames = getPropertyList(users,"name");
...
P.S。我将列表的类型从ArrayList<HashMap<String,String>>
更改为List<Map<String,String>>
,因为最好是对接口进行编程。
如果您使用的是Java 7或更早版本,则需要循环:
public static List<String> getPropertyList(List<Map<String,String>> users, String key)
{
List<String> result = new ArrayList<String>();
for (Map<String,String> map : users) {
result.add(map.get(key));
}
return result;
}