网站救助计划
1.为阅读体验,本站无任何广告,也无任何盈利方法,站长一直在用爱发电,现濒临倒闭,希望有能力的同学能帮忙分担服务器成本
2.捐助10元及以上同学,可添加站长微信lurenzhang888,备注捐助,网站倒闭后可联系站长领取本站pdf内容
3.若网站能存活下来,后续将会持续更新内容
先说一下常见的元素在内存中的存储方式,主要有两种:
- 顺序存储(Random Access):相邻的数据元素在内存中的位置也是相邻的,可以根据元素的位置(如
ArrayList
中的下表)读取元素。 - 链式存储(Sequential Access):每个数据元素包含它下一个元素的内存地址,在内存中不要求相邻。例如
LinkedList
。
主要的遍历方式主要有三种:
for
循环遍历:遍历者自己在集合外部维护一个计数器,依次读取每一个位置的元素。Iterator
遍历:基于顺序存储集合的Iterator
可以直接按位置访问数据。基于链式存储集合的Iterator
,需要保存当前遍历的位置,然后根据当前位置来向前或者向后移动指针。foreach
遍历:foreach
内部也是采用了Iterator
的方式实现,但使用时不需要显示地声明Iterator
。
那么对于以上三种遍历方式应该如何选取呢?
在Java集合框架中,提供了一个RandomAccess
接口,该接口没有方法,只是一个标记。通常用来标记List
的实现是否支持RandomAccess
。所以在遍历时,可以先判断是否支持RandomAccess
(list instanceof RandomAccess
),如果支持可用 for
循环遍历,否则建议用Iterator
或 foreach
遍历。
本站链接:https://www.mianshi.online,如需勘误或投稿,请联系微信:lurenzhang888
点击面试手册,获取本站面试手册PDF完整版