java - 在存储在 HashMap 中的 ArrayList 中搜索值

标签 java search arraylist hashmap

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

这是我所拥有的:

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

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

例子:

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

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

编辑:在发布这个问题之后,我想我明白了一些事情。这个怎么样:

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对于那个特定的迭代,然后存储 key 并进行计算。

如果您不确定 entrySet 的语法和用法,那么您可以在这里查看 - https://www.geeksforgeeks.org/iterate-map-java/

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

相关文章:

java - 在 Activity 之间传递带有自定义 Parcelable Arraylist 的 HashMap

Java多线程同步

java.lang.UnsupportedOperationException : Failed to resolve attribute at index 13: TypedValue{t=0x2/d=0x7f010046 a=-1} 异常

java - Spring 数据中的@Transient 不起作用

bash 命令 : search for class in file system of jars

flutter - 如何为仅限于实例的复选框小部件定义变量?

用于离线呈现网页的 Java(或任何语言)库?

c# - 按顺序获取第一个缺失元素的有效方法?

c++ - 如何将 `std::lower_bound` 与这个定制容器一起使用?

java - 获取单选按钮并将其保存在 ArrayList 中