我有ArrayList
个哈希映射 - &gt; ArrayList<HashMap<String, String>>
如何轻松检查hashmap是否包含特定值?我不想手动遍历整个列表。我正在寻找适用于此案例的ArrayList.contains()
的替代方案。
例如:假设我将以下值放入Hashmap
map.put(TAG_ID, id);
map.put(TAG_TITLE, title);
map.put(TAG_DESCRIPTON, description);
然后添加继续添加到我的ArrayList - arrayList.add(map)
事实是,我不想将重复的id添加到arraylist。
答案 0 :(得分:1)
你应该重新考虑你的设计。使用对象而不是Map
来表示您要存储的内容。然后使用Map
跟踪所述对象的集合。这将自动处理您提到的重复案例,并且可以防止您必须存储多个Map
并迭代它们。
public class Item {
String id;
String title;
String description;
}
HashMap<String, Item> map = new HashMap<String, Item>();
map.put(item.id, item);
答案 1 :(得分:0)
1)根据您的第1条评论,您应该考虑使用
HashMap<String, HashMap<String, String>>
。
对于外部HashMap的键,使用内部HashMaps的ID值 对于内部HashMaps,只需继续做你已经做过的事情。
2)根据您的第2条评论,您可以考虑扩展ArraList和
overrding包含,但这听起来像是矫枉过正和错误的方式
一般来说。 ArrayList.contains()
仍在迭代和检查,
我不明白为什么你不想在你的情况下进行迭代。
答案 2 :(得分:-1)
你可以使用这个假设你有一个名为list的arraylist包含三个hashmaps
for(HashMap<String ,String> h : list)
{
String name =h.get("name");
String age= h.get("age");
String address =h.get("address");
//some code here for the var :)
}