java - 遍历 List 还是从 List 中通过索引获取对象?

标签 java bukkit

好的,例如我有一个 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/

相关文章:

java - 从插件重新编译反编译的类

java - 在 Bukkit 插件中从网页获取 HTML 字符串

java - 将jar库添加到eclipse项目中用于导出

java - 即使在强制停止之后,Google 日历或 Instagram 如何使他们的应用程序始终启动并运行

java - OleControl 中的错误导致 JVM 完全崩溃 - 如何抑制?

java - 如何使用末尾带点的键?

java - Bukkit ProtocolLib 名称标签

java - Bukkit 掉落爆炸 block

java - 如何在单个tomcat中检查每个Web应用程序的内存大小?

java - FileOutputStream 总是触发 ioException