Java 在对象数组中查找对象变量特定值的最快方法

Java 在对象数组中查找对象变量特定值的最快方法,java,Java,我有一个自定义对象的ArrayList,我称之为Questions。这些问题包含问题、唯一的ID,以及答案的数组列表。现在我正试图用一个特定的ID来搜索这个问题。这就是我目前正在做的,但我担心这可能需要太长的时间来完成一个大的列表,所以我想知道是否有更快的方法来完成这项工作 public Question getQuestion(String idLookingFor) { for (Question question : questions) { if (questio

我有一个自定义对象的
ArrayList
,我称之为
Questions
。这些
问题
包含问题、唯一的
ID
,以及
答案的
数组列表
。现在我正试图用一个特定的
ID
来搜索这个问题。这就是我目前正在做的,但我担心这可能需要太长的时间来完成一个大的列表,所以我想知道是否有更快的方法来完成这项工作

public Question getQuestion(String idLookingFor) {
    for (Question question : questions) {
        if (question.getId().equals(idLookingFor))
            return question;
    }
    return null;
}

您可以使用
HashMap
将有关
ID的信息存储为key
,将
问题存储为value
。我假设,
ID
存储为
integer

Map<Integer, Question> map = new HashMap<>();
Map Map=newhashmap();

Map
将为您搜索问题提供
O(1)
时间复杂性。

谢谢!真不敢相信我竟然忘了地图!是的,存储在两个容器中,乍一看令人惊讶(列表和地图),但提供快速信息:排序添加的项目(列表)并通过地图按键快速搜索。每个月使用一次这样的模式,id就会工作得很好。