我有一个List,当我遍历它时,这个编写代码
for (int i = 0; i < list.size (); i++)
和这个编写代码
for (int i = 0,n = list.size (); i < n; i++)
哪个更好,为什么?
答案 0 :(得分:2)
由于您正在循环一个集合,请使用for-each ...
for(Object o : list)
{
//treatment...
}
至于你发布的那些之间的区别,我很确定JVM会为你优化它。
答案 1 :(得分:0)
它没有任何区别。 list.size()
无需计算
/**
* Returns the number of elements in this list.
*
* @return the number of elements in this list
*/
public int size() {
return size;
}
答案 2 :(得分:0)
在两个for循环中为Jean添加一个点:
for (int i = 0; i < list.size (); i++
for (int i = 0,n = list.size (); i < n; i++)
让我们比较一下情况:
情况1:的
如果列表项不会被修改,那就不经常添加和删除,那么第二个for循环更好,因为你获取列表的大小并将其放入变量并进行比较。而在第一个循环中,每次必须计算列表的大小。
情况2:的
如果要经常更改列表项(插入和删除更多),则修复列表的大小不是一个好主意。必须每次通过size()函数动态计算列表的大小。所以在这种情况下,第一个for循环更好。如果你想使用第二个for循环,那么在列表中进行更改之后,重新计算列表的大小并再次存储在n中,这是一个开销。