ArrayList源码中实现Iterator接口中的next方法时,为什么使用定义一个Object[] elementData。
ArrayList源码中实现Iterator接口中的next方法时,为什么定义Object[] elementData = ArrayList.this.elementData
,然后从定义的elementData数组上取值。 return (E) elementData[lastRet = i]
。而不是直接使用 ArrayList.this.elementData[lastRet = i]?
源码:
public E next() {
checkForComodification();
int i = cursor;
if (i >= size)
throw new NoSuchElementException();
Object[] elementData = ArrayList.this.elementData;
if (i >= elementData.length)
throw new ConcurrentModificationException();
cursor = i + 1;
return (E) elementData[lastRet = i];
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果这么写:
那么程序会多一次不必要的寻址。
依我看来这应该主要是为了使得代码更加的简洁
为了少敲几下,以及代码的可读性。