如果理解C#和Java等中ArrayList可以通过下标访问

来源:百度知道 编辑:UC知道 时间:2024/05/30 04:17:19
ArrayList本质上就是一个链表。而我在数据结构清楚的学过链表是不能直接通过下标访问元素的,必须对整个链表进行遍历才能访问元素。
那为什么ArrayList可以通过下标访问元素呢?

ArrayList是数组集合,可不是链表哦。

在C#中,链表表示的集合叫做LinkedList<T>,这个才是你学过的不能使用下标访问的链表集合。

ArrayList是动态的数组集合,它是底层实现是基于数组的,而数组排列是连续的内存空间,所以可以使用下标来计算每一个元素的内存位置,从而获取元素本身。

纠正一点,在C#中,所谓的“下标”叫做“索引器”。是类的一种特殊的方法。

重载了[]运算符而已,在C++你可以随便让一个类用下标访问,C#也支持运算符重载,JAVA好像不支持吧,你可以查下

ArrayList是数组集合

ArrayList虽然本质上是个链表但是java和c#在此基础上进一步封装使你能够通过index访问

其实那个是索引器了
和属性差不多
如果把索引器看成一个方法,那下标就是一个参数,在这个方法里使用这个参数来返回指定序号的对象

有关索引器可以查看 百度知道
http://baike.baidu.com/view/159861.htm?fr=ala0