Android:如何拥有ArrayList类型的数组<hashmap <string,string =“”>&gt; </hashmap <string,>

时间:2014-08-21 13:31:49

标签: java android arrays arraylist

嘿,基本上我想要做的是获取一些ArrayList<HashMap<String, String>> menuItems并将其传递给我的onPostExecute方法,所以为了做到这一点,我打算创建一个menuItems数组并将其传递给.. 。这是我用来做这个的代码

ArrayList<HashMap<String, String>>[] arr = new ArrayList<HashMap<String,String>>[6];
                arr[0] = menuItems;
                arr[1] = menuItems2;
                arr[2] = menuItems3;
                arr[3] = menuItems4;
                arr[4] = menuItems5;
                arr[5] = menuItems6;
然后我回来了。但是我收到了这个错误

Cannot create a generic array of ArrayList<HashMap<String,String>> 

这似乎表明Java在编译器级别实现其泛型,这是我在研究堆栈溢出和Web上的问题后能够找到的所有内容。所以我的问题就是如何做到这一点?要么是一种解决我的错误的方法,要么是另一种返回menuItems的方法。

3 个答案:

答案 0 :(得分:2)

cannot create arrays of parameterized types

您最好的选择是使用List而不是数组。同时在创建参考文献时,您应该prefer interface over actual class

List<List<Map<String, String>>> list = new ArrayList<List<Map<String, String>>>;
list.add(menuItems1);
list.add(menuItems2);
list.add(menuItems3);
list.add(menuItems4);
list.add(menuItems5);
list.add(menuItems6);

答案 1 :(得分:0)

它不可能ArrayList本身是Collection Framework refer文档的动态数组部分。 从代码中删除[]括号。 来自WikiPedia的报价。

  

在计算机科学中,动态数组,可增长数组,可调整大小的数组,   动态表,可变数组或数组列表是随机访问,   可变大小的列表数据结构,允许添加元素或   除去。它提供许多现代标准库   主流编程语言。

refer this也是初学者非常好的资源。 如果你想要固定大小的ArrayList answer

例如我的建议。 的修改

ArrayList<Hashmap<String,String>> list =new ArrayList<Hashmap<String,String>>()
Hashmap<String,String> map=new Hasmap<String,String>()
map.put("KEY","VALUE");
list.add(map);

请记住,每次必须为hashmap创建新实例时。因为它使用唯一值

答案 2 :(得分:0)

ArrayList<HashMap<String, String>>[] arr = new ArrayList<HashMap<String,String>>[6];  

您正在尝试创建array ArrayList。这是故意还是......? 默认情况下,ArrayLists是可扩展的。请尝试删除[][6]

然后,使用add()方法添加所需的数据:)