繁体   English   中英

ArrayList。包含带有Hashmaps的ArrayList

[英]ArrayList.contains for ArrayList with Hashmaps

我有这样ArrayList包含HashMap的- > ArrayList<HashMap<String, String>>

如何轻松检查哈希图是否包含特定值? 我不想手动遍历整个列表。 我正在寻找适用于这种情况的ArrayList.contains()的替代方法。

例如:说我将以下值放入Hashmap

map.put(TAG_ID, id);
map.put(TAG_TITLE, title);
map.put(TAG_DESCRIPTON, description);

然后添加并将其添加到我的ArrayList- arrayList.add(map)事情是,我不想将重复的ID添加到arraylist。

您应该重新考虑您的设计。 使用对象代替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)根据您的第一条评论,您应该考虑使用
HashMap<String, HashMap<String, String>>

对于外部HashMap的键,请使用内部HashMaps的ID值。
对于内部HashMap,只需继续做您已经做的事情即可。

2)根据您的第二条评论,您可能会考虑扩展ArraList和
包含在内,但这对我来说听起来像是过分杀人和错误的方式
一般。 ArrayList.contains()仍在迭代和检查,
我不明白为什么您不想在您的情况下进行迭代。

您可以使用此方法,假设您有一个名为list的arraylist包含三个哈希图

 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 :)
     } 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM