A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

最近学了集合,其中collection根接口中有两个子接口。List跟set。set集合暂且不说(还没学呢),先来说一说我在List集合中遇到的问题吧。

List有三个子类,ArrayList,LinkedList,Vector,Vector现在用的不多了,暂且不说,就说前两个吧。

ArrayList底层数据结构是数组,所以侧重查询的时候可以优先使用;LinkedList底层数据结构是链表,增删多的时候可以优先使用。

问题一:
ArrayList底层数据结构是数组,可以直接for循环遍历我明白,但是LinkedList底层数据结构是链表,我试验过也可以直接for循环遍历;查API,发现他们都继承了List里的public E get(int index)方法,所以说都可以实现获取元素这一步。以前只知道数组可以遍历,是因为可以用.length得到数组的长度,并可以arr[x]获得其中的元素;集合在List下可以直接用int size()返回集合中的元素数,是不是只要知道长度都可以用for循环遍历?
问题二:
迭代器Iterator<E> iterator()  这一步是不是只是从集合中取出元素,并没有将前边的集合转成数组?迭代器是不是就是一个循环?

求大神支招。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马