2013-05-14 137 views
-4

我有一个关于从我的ArrayList<HashMap<String, String>>中获取值的问题。从ArrayList中取值<HashMap <String,String >>

我的代码是:

ArrayList<HashMap<String, String>> myArrayList; 

然后:

HashMap<String, String> map = new HashMap<String, String>(); 
map.put(TAG_ID, id); 
map.put(TAG_NAME, name); 
myArrayList.add(map); 

如果我想要得到的名称,例如,我尝试如下,但我得到一个运行时错误(应用程序崩溃):

System.out.println(myArrayList.get(1).get(TAG_NAME)); 

我该如何解决它?

非常感谢!

+1

永远不要忘记,包括你获得完整的错误消息。它包含修复错误的必要信息... – jlordo 2013-05-14 13:52:17

+0

你是否在任何地方初始化myArrayList? 'myArrayList = new ArrayList >();' – FunkTheMonk 2013-05-14 14:33:37

回答

5

System.out.println(myArrayList.get(1).get(TAG_NAME));

ArrayList是0为基础的。改为get(0)

+0

我已经按照你的说法尝试过了,但数组列表是由64位哈希映射填充的,问题仍然存在 – kareth 2013-05-14 13:52:32

+0

@ kareth可能会发布错误消息有更多的信息,或者真的很难说。 – 2013-05-14 13:53:45

+0

64是什么意思有地图?数组列表的大小? – NullPointerException 2013-05-14 13:56:55

0

您可以通过列表循环这样

for(Map<String, String> map : myArrayList) 
    { 
     String tagName = map.get(TAG_NAME); 
     System.out.println(tagNAme); 
    } 
相关问题