递归:
数组 :
数组的声明:
首选 type[] typeneme = new type[];
用new操作符创建数组:
数组的特点:
数组的三种初始化:
int 类型默认为0 ;string 类型默认为null;
java内存分析
********多维数组 int[][] arrays={{1,2},{2,3},{3,4},{4,5}};
相当于一个长为4的一维数组里面的每个元素都是一个二维数组;
故,当 System.out.println(arrays[0]);时
打印的结果为:
1
2
System.out.println(arrays.length);
System.out.println(arrats[0].length);
打印的结果为:
4
2
总结:Java实际没有多维数组,只有一维数组,多维数组被解读为"数组的数组",例如二维数组arrays是包含{arrays[0],arrays[1],arrays[2]}三个元素的一维数组,arrays[0]是包含{1,2}两个个元素的一维数组,同理arrays[1],arrays[2]也一样。
Arrays类中的主要几个:
冒泡排序:
稀疏数组(代码存放:arrays-demo05):
例题:将该棋盘的黑白棋子用稀疏数组表示
先用数组array1表输出棋盘情况
结果:
然后将数组array1转为稀疏数组array2:
结果:
根据稀疏数组还原出原数组:
结果:
数组的三种打印方式:
一维数组:
定义一个数组 int[] array = {1,2,3,4,5};
如果直接打印System.out.println(array);这样是不行的,这样打印是的是数组的首地址。
(1)传统的for循环方式
(2)for each循环
(3)利用Array类中的toString方法
调用Array.toString(a),返回一个包含数组元素的字符串,这些元素被放置在括号内,并用逗号分开
输出:[1, 2, 3, 4, 5]
二维数组:
Java实际没有多维数组,只有一维数组,多维数组被解读为"数组的数组",例如二维数组magicSquare是包含{magicSquare[0],magicSquare[1],magicSquare[2]}三个元素的一维数组,magicSqure[0]是包含{16,3,2,13}四个元素的一维数组,同理magicSquare[1],magicSquare[2]也一样
(1)传统的for循环方式
(2)for each循环
多维数组用for each循环打印数组比较方便
例:下面代码可以打印出二维数组array1
for(int[] ints:array1){
for(int anInt:ints){
System.out.print(anInt+" ");
}
System.out.println("");
}
(3)利用Array类中的toString方法
因为Arrays.TOString()的API只支持一维数组,不支持二维数组,
如果对二维数组调用同样的API,如:
显示的是每个test[i]的首地址
因此应该使用如下的方法: