ArrayList问题

ArrayList.this.elementData

ArrayList的源码中,有一个实现了Iterator接口的内部类Itr,其中有两个elementData变量,一个是内部类的属性,一个是外部类的,

那么外部类的就必须标识为ArrayList.this.elemtData

注意,不是this.elementData,因为外部类的对象是不能调用内部类的,所以只能用类名.this来区别内部类和外部类的属性。

//内部类

private class Itr implements Iterator<E> {

transient Object[] elementData;

@SuppressWarnings("unchecked")

public E next() {

//同名变量

Object[] elementData = ArrayList.this.elementData;

}

}

转自https://blog.csdn.net/jiachunchun/article/details/90235767

。。。

(0)

相关推荐

  • 无语!这道迭代器笔试题,居然难倒很多人

    有位小朋友最近正在为年后换工作做准备,但是遇到一个问题,觉得很不可思议的一道笔试题.然后我把这道题发到技术群里,发现很多人居然不知道,很多都是连蒙带猜的说.感觉很有必要写一篇文章来说道说道. 涨薪必备 ...

  • Java面试考点(一)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.java基础 1.1请你说明String 和StringBuffer的区别 1.2请你说明一下int 和 Inte ...

  • Linq操作ArrayList

    ArrayList实现了System.Collections空间下的IEnumerable接口,这个接口是非泛型的.如果要使用LINQ,必须声明枚举变量的类型,依赖Cast查询运算符转换枚举类型. u ...

  • 探索ArrayList底层实现

    背景 想进步,想学习了,反正面试都要问的,还不如早点看了好.探索ArrayList源代码是基于JDK1.8版本的,相比以前的版本不知道有没有优化,毕竟没看过之前版本的底层代码.一般看底层代码前我都习惯 ...

  • 【java源码】ArrayList

    题目:[java源码]ArrayListArrayList 常用功能:构造函数.增.批量增.删.批量删.批量保留ArrayList 属性: // 默认数组长度(数组,而不是数据个数) private ...

  • 数据结构之ArrayList

    首先:讲述ArrayList之前先来说下List,List是java重要的数据结构之一,我们经常接触到的有ArrayList.Vector和LinkedList三种,他们都继承来自java.util. ...

  • 面试官:兄弟,说说 ArrayList 和 LinkedList 有什么区别

    来自公众号:沉默王二 ArrayList 和 LinkedList 有什么区别,是面试官非常喜欢问的一个问题.可能大部分小伙伴和我一样,能回答出"ArrayList 是基于数组实现的,Lin ...