递归:

数组 :

数组的声明:
首选 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]的首地址
因此应该使用如下的方法:

本文深入探讨了Java中数组的概念,包括数组声明、初始化、特点及内存分析。特别关注了一维数组和多维数组(即数组的数组)的处理方法,并介绍了数组的常见操作如排序和转换为稀疏数组的方法。
348

被折叠的 条评论
为什么被折叠?



