我试图弄清楚如何检索存储在Hashmap中的ArrayList中存储的值。

这是我所拥有的:

HashMap<String, ArrayList<Record>> records = new HashMap<>();


该哈希图中的关键不是我想要的。 Record对象内部有一个名为getRecordId()的方法,我希望能够通过if语句评估此recordId是否在ArrayList中存在。

例:

if(records.values.exists(recordId)){ ...do something ...}


本质上,我想遍历ArrayList中的所有值以查看该记录ID是否存在,如果存在,我将存储键并计算一些内容。我该怎么做?

编辑:发布此问题后,我想我正在处理一些事情。这个怎么样:

Set<Map.Entry<String, ArrayList<Record>>> entrySet = records.entrySet();
for(Map.Entry<String, ArrayList<Record>> data : entrySet)
{
    for(Record entry : data.getValue())
    {
        if(recordId.equals(entry.getRecordId()))
        {
            // Do something here
            return "";
        }
    }
}


如果找到记录ID,我需要离开循环,因为记录ID是唯一的。

最佳答案

您可以在此处使用Hashmap.entrySet()来获取所有键的列表,并遍历该键集,并检查该特定迭代的ArrayList中是否存在recordId,然后存储该键并进行计算。

如果不确定entrySet的语法和用法,则可以在此处进行查找-https://www.geeksforgeeks.org/iterate-map-java/

关于java - 在存储在HashMap中的ArrayList中搜索值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52631927/

10-10 19:37