数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。Java 语言中提供的数组是用来存储固定大小的同类型元素。你可以声明一个数组变量,如 int i[] = new int[10];来代替直接声明10个独立变量,本章将为大家介绍 Java 数组的声明、创建和初始化,并给出其对应的代码。
下面是三种定义和是使用数组的方法:
public class Test {
public static void main(String[] args) {
int number1Arr[] = new int[10];
int number2Arr[] = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
float number3Arr[] = {1.1f, 2.2f, 3.3f, 4.4f, 5.5f, 6.6f, 7.7f, 8.8f, 9.9f, 11.11f};
System.out.println("number1Arr:" + number1Arr[0] + number1Arr[1] + number1Arr[2]
+ number1Arr[3] + number1Arr[4] + number1Arr[5]
+ number1Arr[6] + number1Arr[7] + number1Arr[8]
+ number1Arr[9]);
System.out.println("number2Arr:" + number2Arr[0] + number2Arr[1] + number2Arr[2]
+ number2Arr[3] + number2Arr[4] + number2Arr[5]
+ number2Arr[6] + number2Arr[7] + number2Arr[8]
+ number2Arr[9]);
System.out.println("number3Arr:" + number3Arr[0] + number3Arr[1] + number3Arr[2]
+ number3Arr[3] + number3Arr[4] + number3Arr[5]
+ number3Arr[6] + number3Arr[7] + number3Arr[8]
+ number3Arr[9]);
System.out.println("number1Arr的长度为:" + number1Arr.length);
}
}
第一种是定义一个长度为10的数组,没有初始化数据。
第二种和第三种是定义一个数组并初始化数组的数据,这种方式不需要在中括号内写数组的长度。
最后一行的number1Arr.length是数组的长度,length是数组的属性,直接“数组.属性”就能获取。
使用数组也很简单,只需要“变量名[索引(或下标)]”就可以了。如果数组没有初始化数据,则数组中默认存放是都是0。需要 注意的是,在数组中,索引的开始值是0,结束值是数组的长度减1,如定义一个长度为10的数组,那么取数组值的时候,索引只能是0-9,如果number1Arr[-1]或number1Arr[10],程序会报错:
java.lang.ArrayIndexOutOfBoundsException这是个很常见的异常,表示数组索引越界了,请记住这个异常,以后看到这样的就知道代表的错误含义了,在eclips中,点击红框处Test.java:6会自动定位并选中出错的那一行。
定义并初始化数组完,如果想更改数组中的数据,只需要“变量名[索引] = 值”就可以了:
public class Test {
public static void main(String[] args) {
int numberArr[] = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
System.out.println("第5个值为" + numberArr[4]);
numberArr[4] = 9999; //把数组中第五个值改为9999
System.out.println("第5个值为" + numberArr[4]);
}
}
上面的例子打印一个完整的数组非常麻烦,如果数组里面有100个数据,我这样做就十分不妥了。下一章介绍流程控制语句,学会之后就可以方便的把数组中的数据打印出来了。
作业:
1、练习定义长度为8,类型为int、float、boolean、long、double的数组并初始化数据,最后打印索引为2和6的数据。
2、第一题中定义好的数组,修改索引为2的的数据,并打印。
上节作业答案:
import java.util.Scanner;
/**
* 这是一个输入两个数字计算加法的程序
*/
public class JiSuanJiaFa {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请在Console中请输入一个数字,并按回车");
float a = s.nextFloat();// 第1个数字
System.out.println("请在Console请输入一个数字,并按回车");
float b = s.nextFloat();
float c = a + b;
System.out.println("和为:" + c);
}
}
eclips自带了格式化快捷键Shift+Ctrl+F,它的风格也不错,只是还是要有自己的编码风格比较好。