一、数组是什么?
数组的本质是一个窗口,是一个可以装多个数据的容器
数组就是一个数据类型一致,长度固定,内存空间连续的容器(地址连续0x211-->0x212)
二、数组的定义
方式一
数据类型[] 数组名 = new 数据类型[长度];
方式二
数据类型[] 数组名 = new 数据类型[]{值1,值2...};
方式三
数据类型[] 数组名 = {值1,值2};
方式1和方式3用的比较多
三、数组的操作
(1)数组的基本概念
①数组的长度:arr.length
②数组的索引:最大索引=长度-1(索引是从0开始的)
(2)数组的基本操作
①向数组中添加数据(用于没有给值,给长度的情况)
数组名[索引] = 值;
例:arr[1] = 22;
②修改数组中的数据
数组名[索引] = 新的值;
例:arr[1] = 111;
③取出数组中的数据;
数组名[索引]
例:arr[i]; //111
(3)数组的初始值
数组创建后默认是有初始值的,整数为0,小数0.0,字符是空字符串,boolean是false,引用类型为null
四、数组的遍历
1.普通的遍历
2.foreach遍历
for(数据类型 别名:数组名){
}
例如:for(int num:arr){
System.out.println(num);
}
五、java内存
虚拟机栈:存放局部变量,方法执行的方法帧
本地方法栈:供调用本地方法时使用
堆:存放new出来的一切对象
程序计数器:存储程序当前执行的行号
方法区:存放静态的不变的资源
六、二维数组
二维数组本质就是在一维数组的基础上,每一个元素又由一个新的数组组成
方式一
数据类型[][] 数组名 = new 数据类型[长度][长度];
例如:int[][] arr = new int[2][3];
方式二
数据类型[][] 数组名 = new 数据类型[][]{{值1,值2}{值3,值4}};
或 数据类型[][] 数组名 = {{1,2}{3,4}};
例如:int[][] arr = new int[][]{{1,2}{3,4}};
方式三
数据类型[][] 数组名 = new 数据类型[长度][];
例如:int[][] arr = new int[2][];
这种方式在定义的时候只规定了外层的一维数组的个数,并未规定内部元素嵌套的二维数组的内容和长度。
二维数组的基本操作
1.赋值
arr[0][0]=0;第一个是一维数组的索引,第二个是二维数组的索引
2.修改
arr[0][0]=11;
3.获取
int a = arr[0][0];
七、数组的排序(算法)
1.冒泡排序
2.二分查找法
3.选择排序
4.杨辉三角
5.快速排序
6.插入排序