【问题标题】:Get single item from List<HashMap<String, String>>从 List<HashMap<String, String>> 中获取单个项目
【发布时间】:2014-08-27 18:05:04
【问题描述】:

我正在修改其他人的代码。 我有一个List&lt;HashMap&lt;String, String&gt;&gt; 类型的变量

List<HashMap<String, String>> lst

我尝试通过使用获取项目单值

lst[0,1]
lst[0][1]
lst.get(0)[1]
lst.get(0)(1)
lst.get(0)("ID")

但不起作用。

如何获取单个item的值?

    List<HashMap<String, String>> lst = null;

    try{
        lst = myXmlParser.detparse(reader);
    }catch(Exception e){
        Log.d("Exception", e.toString());
    }

【问题讨论】:

  • 使用 list.get(index); 它将返回一个类型为 HashMap&lt;String,String&gt; index 的对象,这是您选择的 int
  • 应该是List&lt;Map&lt;String, String&gt;&gt; lst
  • 我使用了 list.get(index) 但它不会返回单个值它会返回一个包含 4 个项目的列表
  • 不确定由 getparse 生成 List> 的代码与“如何获取单个项目”的问题有关。

标签: java android list hashmap


【解决方案1】:

访问器方法必须从外部应用到内部。如果你有一个

List<Whatever> lst

你使用

lst.get(0)

检索列表中的第一个元素。如果 What 反过来又是一个聚合,则对返回的值应用适当的访问器:

List<Map<String,String>> lst

并获取通过“somekey”映射的字符串:

lst.get(0).get("somekey")

现在,这会给你一个字符串,它也有访问器,例如。访问单个字符:

lst.get(0).get("somekey").charAt(0)

这是“在列表 lst 的第一个哈希映射中用键“somekey”映射的字符串的第一个字符”。

【讨论】:

    【解决方案2】:

    您应该阅读ListMap(分别为HashMap)的文档以了解如何使用它们。

    由于您的List 包含Map,因此您必须使用List 操作获取Map,然后使用Map 操作从该Map 获取元素:

    HashMap<String, String> firstMap = lst.get(0);
    String someEntry = firstMap.get("key");
    

    【讨论】:

      【解决方案3】:

      为什么不使用列表索引...

      HashMap<String, String> entry = lst.get(0);
      

      【讨论】:

      • @DownVoter,可以评论一下,为什么要投反对票?要使用索引从列表中返回一个元素 - 使用 get(index) 是建议并且它适合问题。
      • 我认为一个相当奇怪的人对这个问题的每一个答案都投了反对票。我得到了 +8 的评分,看起来像一个上下,其他人可能也经历过类似的情况。
      【解决方案4】:
      HashMap<String, String> firstEntryInList = list.get(0);
      

      其中 '0' 是索引。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-05
        • 2013-05-27
        • 2018-10-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多