数组属于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();

}


谢谢阅读,欢迎指正!