如何在ArrayList中存储HashMap然后到String []

时间:2012-03-09 20:25:19

标签: android map arraylist

这是我的物品

public ArrayList<HashMap<String,String>> c_tmp= new ArrayList<HashMap<String,String>>();
 public HashMap<String,String>mapa=new HashMap<String, String>();
String[] name_Val = null;

任何人都可以帮我如何在String []中存储以下行name_Val

name_Val = (String[]) c_tmp.toArray(new String[c_tmp.size()]);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,name_Val);

我得到了这个例外 java.lang.ArrayStoreException:类型为Ljava / util / HashMap的source [0];不能存储在[Ljava / lang / String;

类型的目标数组中

2 个答案:

答案 0 :(得分:1)

您正在尝试将地图展平,这是一组键/值对到平面值列表中。这里的钥匙应该发生什么?您的c_tmp变量是HashMap的列表,可能不是您想要的。

如果您只想要地图中的值并且想要丢弃密钥,请执行以下操作:

List<String> strings = yourHashMap.values()

然后,您可以根据需要将List转换为数组。

答案 1 :(得分:0)

我建议您使用HashMap<String,String>数据类型,因为地图具有为values

添加unique key的属性

完成将数据存储到hashmap后,您可以使用Iterator进行迭代,并从HashMap获取所有密钥,从而获取所有密钥Values那些存储在ArrayList中,然后将其转换为String Array的密钥对您来说不是问题。