好的,例如我有一个 Arena 类并将它们添加到列表中,我需要通过一个参数获取 Arena。遍历每个对象或从列表中获取它们更有效?哪种方式效率更高?
public Arena getArena(String param) {
List<Arena> arenas = ...;
for(Arena arena : arenas) {
if(arena.getParameter().equals(param)) return arena;
}
}
或
public Arena getArena(String param) {
List<Arena> arenas = ...;
for(int i = 0; i < arenas.size(); i++) {
if(arenas.get(i).getParameter().equals(param)) return arenas.get(i);
}
}
最佳答案
这取决于您使用的 List 实现是否具有随机访问(例如 ArrayList)或没有(例如 LinkedList)。
如果它没有随机访问,则第二个选项的效率会较低,因为 arenas.get(i) 需要从列表的开头(或结尾)迭代到请求的索引。
如果是随机访问列表,两个选项的运行时间相似,但第一个看起来更简洁。
关于java - 遍历 List 还是从 List 中通过索引获取对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28171810/