数组属于8个基本数据类型外的引用数据类型(类,接口,数组);
* 数组概念
数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。
数组既可以存储基本数据类型,也可以存储引用数据类型。
* 数组定义格式
数据类型[] 数组名 = new 数据类型[数组的长度]; // char[] s;
用来指示单个数组元素的下标必须总是从0开始。
可以用数组对象的length属性来获得该数组可以容纳的元素个数。
注意:
String类中的方法length调用时 s.length();
获得字符串的每个字符 s.charAt(i); //i从0开始,空格也计算在内。
1.数组的初始化
只有初始化后才能被使用,数组一旦初始化成功,就不能更改,如果要更改,必须重新初始化。
初始化就是为数组开辟连续的内存空间,并为每个数组元素赋予值
a:动态初始化: 只指定长度,由系统给出初始化值
** 直接给出数组的大小
int[] arr = new int[5];
当创建一个数组时,每个元素都将被默认初始化。
char数组s的例子中,每个值都被初始化为0 (\u0000-null)字符;
数值类型的数组元素默认值为0
boolean类型的数组元素默认值为false
对象类型的数组元素默认值为null
** 可在运行时,用变量表示数组的大小。
int[] a;
int len=10;
a=new int[len]; //但是len的大小不能改变
b:静态初始化: 由我们自己给出初始化值,由系统决定长度
字符串:
String[ ] names = {“Georgianna”,“Jen”,“Simon”};// 双引号
== String[ ] names = new String[ ] {“Georgianna”,“Jen”,“Simon”};// 双引号
字符:
char[] ch={'z','b','c'};//单引号
动态初始化的例子如下:
String[] names ;
names = new String [3];
names [0]= “Georgianna”;
names [1] = “Jen”;
names [2] = “Simon”;
2.访问数组
与C一样用循环,与C不同的是:
** java自带length方法。
length是属性,不是方法。
3.二维数组
3.1二维数组格式
* 1:数据类型[][] 数组名 = new 数据类型[m][n];
* 2:数据类型[] 数组名[] = new 数据类型[m][n];
//int[] x,y[]; x是一维数组,y是二维数组
3.2二维数组声明
在java中new int [ ] [4]是非法的, 而在C语言中new int [ 4] [ ]是不行的。在java中行不能省略,java比C省空间
3.3二维数组遍历
* 外循环控制的是二维数组的长度,其实就是一维数组的个数。// 行
* 内循环控制的是一维数组的长度。// 列
int[ ][ ] arr = {{1,2,3},{4,5},{6,7,8,9}};
for (int i = 0;i < arr.length ;i++ ) { //获取到每个二维数组中的一维数组
for (int j = 0;j < arr[i].length ;j++ ) { //获取每个一维数组中的元素
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
谢谢阅读,欢迎指正!