【问题标题】:Convert ArrayList(Hashmap<String,String>) to some Arraylists [closed]将 ArrayList(Hashmap<String,String>) 转换为一些 Arraylists [关闭]
【发布时间】:2018-12-13 09:39:01
【问题描述】:

我有一个ArrayList(Hashmap&lt;String, String&gt;) 命名用户,每个Hashmap&lt;String, String&gt; 都包含一个用户的个人资料,例如nameidphone 等...

我想把这个ArrayList 转换成一些简单的ArrayList。例如,我想要一个 id ArrayList 包含可以在主 ArrayList 中找到的所有 id。有什么功能可以做到吗?

【问题讨论】:

标签: java android arraylist hashmap


【解决方案1】:

您可以使用Streams 编写这样的函数:

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");
...

附:我将列表的类型从ArrayList&lt;HashMap&lt;String,String&gt;&gt; 更改为List&lt;Map&lt;String,String&gt;&gt;,因为最好编程为接口。

如果您使用的是 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;
}

【讨论】:

  • 非常感谢,但似乎这段代码需要 1.8 版本的 java,您可以编辑需要 java1.8 的部分吗?
  • 行是'm -> m.get(key)'
  • @ShakibKarami 好的,我刚刚做了
猜你喜欢
  • 1970-01-01
  • 2013-05-08
  • 1970-01-01
  • 2011-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-20
  • 1970-01-01
相关资源
最近更新 更多