当前位置: 首页 > 面试题库 >

性能:遍历Java中的列表

甄文彬
2023-03-14
问题内容

这样遍历Java中的列表是否较慢:

for (int i=0;i<list.size();i++) {
    .. list.get(i)
}

相对于:

for (Object o: list) {
    ... o
}

问题答案:

我假设您出于好奇而问,不会引用Knuth(可能有人会)。

我相信,一旦您的代码被编译,就不会有任何改变。它 确实 有所作为 之前 (例如2是很多更易读和简洁的),所以要为2号和不关心的休息。

就是我的2美分

编辑

请注意,代码段1中的代码会在list.size()每次循环运行时进行计算,这可能使其比代码2还要慢

还需要编辑

我必须仔细检查一下,Joshua Bloch建议使用for each循环(请参见Effective
Java的
项目46
)。我相信到此结束各种讨论。谢谢乔什!:)



 类似资料:
  • 本文向大家介绍Java中ArrayList和LinkedList的遍历与性能分析,包括了Java中ArrayList和LinkedList的遍历与性能分析的使用技巧和注意事项,需要的朋友参考一下 前言 通过本文你可以了解List的五种遍历方式及各自性能和foreach及Iterator的实现,加深对ArrayList和LinkedList实现的了解。下面来一起看看吧。 一、List的五种遍历方式

  • 本文向大家介绍Java中Map的遍历方法及性能测试,包括了Java中Map的遍历方法及性能测试的使用技巧和注意事项,需要的朋友参考一下 1. 阐述 对于Java中Map的遍历方式,很多文章都推荐使用entrySet,认为其比keySet的效率高很多。理由是:entrySet方法一次拿到所有key和value的集合;而keySet拿到的只是key的集合,针对每个key,都要去Map中额外查找一次va

  • 问题内容: 我发现我正在编写许多Makefile,可以使用 n个 元组列表清除它们。但是我找不到任何正确(干净)地进行此操作的方法。到目前为止,我只能使用 $(shell …) 和 tr , sed 或其他非Makefile标准。 例如,我想这样做: 有没有一种很好的方法来迭代Makefile中的 n个 元组列表?谢谢! 问题答案: Makefile本质上是声明性的,因此我认为make本身不能提供

  • 我有一个数组列表,其中包含我想要执行方法“计数”的实例化对象的名称。不过,我不确定是否/如何做到这一点。我有一个循环要扫描数组列表,并添加了伪代码。 我是java新手,不确定这是否可行,但如果有任何帮助,我将不胜感激。谢谢

  • 问题内容: 我有以下对象和地图: 我想将地图转换成另一个地图。结果图的键是输入图的键。结果映射的值是My对象的属性“名称”,按优先级排序。 该 排序 和提取的名字是没有问题的,但我不能把它放到结果地图。我使用旧的Java 7方法进行操作,但是可以使用流API会很好。 有人知道吗?我试过了,但是被卡住了: 问题答案: 本质上,您将流式传输每个条目集并将其收集到新映射中。要计算新地图中的值,请从旧地图

  • 问题内容: 在同时处理2个元素的同时迭代列表的最佳方法是什么? 例: 结果是: 我想实现: 问题答案: 只需增加2: