如何使用数组呢?
这正是我们这次要说的。数组实际上是一种简单的数据结构,它在计算机中是顺序存储的,而我们要使用数组,实际上是要使用数组中的元素,比如我们有一个这样的数组intIa= (1315,19,28;那么,我们如何找到并使用7这个数字呢?
数组的下标。数组的下标可以这样理解:数组的下标实际上就是为数组里面元素进行编号,我们可以把数组中的元素看成是正在排队,还是上面的例子,13是第一个,15是第二个,19是第三个,28是第四个。于是,最容易让人接受的编号就是1234,但是呢,java并不是这么做的,java的编号是从0开始的,于是编号就是0123。那么,13就是第零个。用数组的下标访问数组元素。还是上面那个例子,如果我们要访问15,我们知道,15的下标早1 那么就旦这样的·11 这样我们就得到了数组a中第二个元 素,也就是15。如果我们使用for循环,就可以把数组中的元素——找出并做处理,下面我们来看一个简单的程序,不做别的,只是定义个整型数组,然后把里面 的元素挨个打印出来,嗯,我们就用上面这个数组吧。
折叠行号 运行 调试
public class UseArray (
public static void main(String[] args)(
int a=new int[]{13,15, 19, 28};
for(int i=0;j<4;i++){
System.out.println("下标是:“+i+","+"值是:"+a[i])
}
看,我们显示出了所有的元素,对吧。注意,我们说,可以对数组中的元素进行操作,而不只是打印出来,比如,可以把里面的元素而不只是打印出来,比如,可以把里面的元素乘以2。也可以求几个同长度的 数组的线性组合,等等等等。另外,有一个问题需要考虑,那就是在上面的例子里,for循环汇中is4,那是因为我们知道数组长度为4,那如果我们不知道呢?这就需要求出数组的长度。
数组的长度
得到数组的长度在java里是很简单的,那就是:数组名.length,我们来看一个简单的程序就可以了,如下:
折叠 行号 运行 调试
lic class ArrayLength (
blic static void main(String] args)(
t] a=new int[](13,15, 19, 28);
for(int i=0;i<a.length;i++){
System.out.println("下标是:“+i+","+"值是:"+a[i])}
这个就是上次的那个程序,我只是把for后面那个4改成了a.length,也许有人要问了,那为什么非要求出数组的长度呢?数组在起始的时候,长度不就已经确定了吗?是的,但是有的时候还是会出现那种,我们不知道数组长度的情况,比如,一个函数的参数是数组的时候(我们以后会说到函数),再比如,如果数组的长度是随机生成的呢?下面我们就来做这样一个程序,随机生成数组长度,程序如下:
折叠 行号
nport java.util.Random;
ublic class RandomArrayLength
oublic static void main(String] args)(
Random rd=new Random();
int size=rd.nextlnt(4);
int] a=new intlsize];
for(int i=O;ika.length;i++){
System.out.println("下标是“+i+"+"值是:"+ali
size=5;
System.out.println("下标是:"+i+","+"值是:"+a[i])
}
输出:
下标是:0,值是:0
下标是:1,值是:0
下标是:2,值是:0
下标是:0,值是:0
下标是:1,值是:0
下标是:2,值是:0
Exception in thread "main" java.lang.Arraylnd at RandomArrayLength.main(RandomArrayLe当然,有人可能会说,既然我们在程序里面已经得到了size,那干脆用size就好了,没必要非要用length吧?嗯,我只能告诉你,对于这个程 序确实是这样的。但是,size是可以改变的,它不见得时时刻刻都代表了目前这个数组的长度,但是length就绝对是此数组的长度。
数组索引起始为0,负数索引在Java中是无效的,会抛出
ArrayIndexOutOfBoundException,如果你尝试用无效的索引访问数组,这个无效的索引可能是一个负索引,或者是大于等于数组长度的索引。