数组的下标与长度
Posted joyfulcode
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组的下标与长度相关的知识,希望对你有一定的参考价值。
我们知道数组实际上是一种简单的数据结构,它在计算机中是顺序存储的,而我们要使用数组,实际上就是要使用数组中的元素。
如:现在有一个数组:int[] a = {13,15,59,28};那么我们如何找到并使用59这个数字呢?
数组的下标:
数组的下标可以这样理解:数组的下标实际上就是为数组里面的各个元素进行编号,这个编号是顺序递增进行的,我们可以把数组中的元素看成是正在排队。
如上面的例子,13是数组中的第一个元素,15是第二个,59是第三个,28是第四个。于是,最容易让人接受的编号就是1234这样编号了,但是Java并不是这样做的,Java是从0开始编号的,也就是说第一个元素的编号为0,第二个为1,以此类推。那么为什么Java要这样做呢?原因如下:
比如上面的例子,数组a有4个元素,当程序执行的时候,Java会向内存去申请一段空间地址用来存储这四个元素,而且这个空间结构是顺序的连续结构,因为只有四个元素,所以这段空间只有四个房间,假如该空间的第一个房间的编号为1001,第二个为1002,第三个为1003,第四个为1004,但是,我们只知道:1.数组a去拿地址的时候它只能拿到这一段地址,而不是分成很多小房间的地址,也就是说,它只知道这段地址的第一个房间编号为1001;2.这段地址的数组空间有四个。
所以,Java是这么做的:
给第一个元素编号为0:a[0] --> 1001+0 = 1001; (13这个元素住第一个房间)
给第二个元素编号为1:a[1] --> 1001+1 = 1002; (15这个元素住第二个房间)
给第三个元素编号为2:a[2] --> 1001+2 = 1003; (59这个元素住第三个房间)
给第四个元素编号为3: a[3] --> 1001+3 = 1004; (28这个元素住第四个房间)
如果要获取数组中的某一个元素,就用下标来获取,比如59这个元素,我们知道它的下标为2,那就是这样的:a[2],这样就得到了第三个元素59。那如果想要获取数组中的全部的元素呢?那就很简单,用for循环语句把它们一一获取出来就可以了。
示例:
/** * @author 刘小将 * 测试遍历数组 */ public class UseArray{ public static void main(String[] args){ int[] a = new int[]{13,15,59,28}; //声明一个int型的数组叫a,并初始化值 for(int i = 0;i < 4;i++){ System.out.println("下标为:"+i+","+"值为:"+a[i]); } } }
如上面的例子,for循环中的i<4,是因为我们先前知道a这个数组有四个元素,假如现在有一个数组,它的元素有多少个我们也不知道,我们怎么办呢?这时候我们就要先获取该数组的长度,再进行遍历。
数组的长度:
在Java中要得到数组的长度是非常简单的,不用自己再去写多余的算法。
语法:数组名.lenght();
使用Java提供的方法,就可以直接获取到该数组的长度了。
示例:
/** * @author 刘小将 * 测试数组的长度获取 */ public class ArrayLenght{ public static void main(String[] args){ int[] a = new int[]{13,15,59,28}; //假如这是一个我们不知道长度大小的数组 for(int i = 0;i < a.lenght();i++){ //此处i的区间到底小于多少,我们也不知道,只有程序计算到这一块时,才能计算出来 System.out.println("该数组的长度为:"+a.lenght()); System.out.println("数组元素下标为:"+i+","+"值为:"+a[i]); } } }
数组的索引起始于0,所以负索引在Java中是无效的。
如果尝试用负索引/无效的索引访问数组,会抛出:ArrayIndexOutOfBoundException异常。
以上是关于数组的下标与长度的主要内容,如果未能解决你的问题,请参考以下文章