将ArrayList(Hashmap <string,string>)转换为某些Arraylist

时间:2018-12-13 09:39:02

标签: java android arraylist hashmap

我有一个名为ArrayList(Hashmap<String, String>)的用户,每个Hashmap<String, String>包含用户的个人资料,例如nameidphone等。

我想将此ArrayList转换为一些简单的ArrayList。例如,我想要一个ID ArrayLis t,其中包含可以在主ArrayList中找到的所有ID。有功能吗?

1 个答案:

答案 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;
}