为何该代码能获取数组最后一个元素?array.length-1为何取4而非3?
Java数组获取最后一个元素的原理详解
先看你给出的代码:
int [] array = new int []{1,2,3,4}; int last = array[array.length-1];
核心逻辑:数组是0基索引
Java里的数组采用0开始计数的索引规则,简单说就是第一个元素的位置不是1,而是0:
- 元素
1对应索引0 - 元素
2对应索引1 - 元素
3对应索引2 - 元素
4对应索引3
为什么array.length-1能定位到最后一个元素?
array.length是数组的元素总数,这里数组有4个元素,所以array.length的值是4。- 用元素总数减1,得到的就是数组的最大有效索引:
4-1=3,这个索引正好对应最后一个元素4。
为什么拿到的是4而非3?
数组的索引范围是从0到length-1,如果用array.length(也就是4)去访问数组会直接报错——因为数组根本没有索引4的位置。而索引3对应的是第四个元素4,索引2才对应第三个元素3,所以array.length-1指向的是最后一个元素,而非倒数第二个。
内容的提问来源于stack exchange,提问作者Kirill
相关产品推荐
相关产品推荐

