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就会工作得很好。