java:在ArrayList <object>中存储HashMap <string,string =“”>

时间:2015-05-01 08:57:41

标签: java android arraylist hashmap

ArrayList<Object> parameters = new ArrayList<Object>();

HashMap<String, String> parameter = new HashMap<String, String>();
parameter.put("key", "value");

parameters.add(parameter);
parameters.add((String) "additionalData"); //this line is here for a reason
destinationFunction(parameters);

....

destinationFunction(ArrayList<Object> data){
     HashMap<String, String> imported = (HashMap<String, String>) data.get(0);
     String value = imported.get("key");
}

我如何实现这一目标?当我尝试我收到没有错误,直到像destinationFunction的2,我收到空指针异常

5 个答案:

答案 0 :(得分:1)

ArrayList<Object> parameters = new ArrayList<Object>(); 

将此行与您要存储在数组列表中的内容重新对齐 就像你想存储哈希映射然后创建类型哈希映射的arraylist

 ArrayList<HashMap<String, String>> parameters = new ArrayList<HashMap<String, String>>();

希望这会对你有所帮助

答案 1 :(得分:0)

使用hashmap的数组列表

ArrayList<HashMap<String, String>>()

答案 2 :(得分:0)

尝试放置ArrayList<HashMap<String, String>>而不是ArrayList<Object>

创建 HashMap 并添加到 ArrayList。 例如: -

ArrayList<HashMap<String, String>> list = new ArrayList<>();

HashMap<String, String> map = new HashMap<>();
map.put("KEY", "VALUE");

list.add(map); //Add the map into list

答案 3 :(得分:0)

您没有指定存储在arrayList中的类型。但是,您在destinationFunction中假设此列表仅包含HashMap<String, String>个元素。除了可怕的代码风格,在java中写这样也没关系。但是当你在arrayList中放入String类型的元素时,你犯了一个错误,它在destinationFunction中打破了你的假设。

P.S。尝试编写更多类型安全的代码,并避免使用Object类型参数的泛型类型。

答案 4 :(得分:0)

备用解决方案将使用JsonObjectJsonArrays。 它们非常适合这种情景&#34; (使用String,Integer等组合List和Map)。

它们也可能对复杂对象有用(例如使用图像),但实现起来会更难实现。在这种情况下,请参阅java_serialization

在您的情况下,

使用JSONArray而不是ArrayListJsonObject代替HashMap