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

标签 java

我有一个自定义对象的 ArrayList,我称之为 Questions。这些问题包含问题、唯一的ID答案ArrayList。现在,我尝试使用特定的唯一 ID 搜索问题。这就是我目前正在做的事情,但我担心这对于一个大列表来说可能会花费太长的时间,所以我想知道是否有更快的方法来做到这一点。

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

最佳答案

您可以使用HashMap来存储ID作为键问题作为值的信息。我假设,ID 存储为 Interger

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

map 将为您提供搜索问题的O(1)时间复杂度。

关于java - 在对象数组中查找对象变量的特定值的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32542088/

相关文章:

java - 从 OS X Applet 调用 java.awt.Toolkit.getDefaultToolkit() 时出现空指针异常

java - 将字典文本文件加载到 Java 中

java - 这两个 block 中的哪一个会捕获更多异常,Exception 或 RuntimeException

Java - 将 .txt 文件读取到 arrayList 忽略最后一次迭代并显示错误

java - 返回对存储在对象字段之一中的可变对象值的引用会暴露对象的内部表示

java - 如何在 mvn :package 中包含 GWT 生成的文件

Java邮件不返回主题

java - 优化大型 Java 数据数组的处理和管理

java - JDO 枚举实现接口(interface)

Java只能在JFrame上显示1张图像