1.数组(Array),多个相同类型数据按一定顺序排列的集合,使用一个名字命名,并通过编号的方式对这些数据统一管理
2.数组相关的概念
>数组名
>元素
>下标、索引
>数组的长度(元素个数)
3.特点:
1)数组是有序排列的
2)数组属于引用数据类型的变量。数组的元素可以是基本数据类型或引用类型
3)创建数组对象会在内存空间开辟一整块连续的空间
4)数组长度一旦确定就不可以修改。
4.数组分类:
①按照维度:一维数组、二维数组....
②按照数组元素的类型:基本数据类型元素的数组、引用数据类型元素的数组
1.数据与数据之间的逻辑关系:集合、一对一、一对多、多对多
2.数据的存储结构:
线性表(一对一):顺序表(比如:数组)、链表、栈、队列
树形结构(一对多):二叉树
图形结构(多对多):
算法:
排序算法:
搜索算法:
1.一维数组的声明和初始化
int[] id;//声名数组
//1.1静态初始化:数组的初始化和数组元素的赋值操作同时进行
id= new int[]{1001,1002,1003};
//1.2动态初始化:数组的初始化和数组元素的赋值操作分开进行
String[] names = new String[100];
//获取数组长度
System.out.println(names.length);
//遍历数组
for(int i = 0;i < names.length;i++)
{
System.out.println(names[i]);
}
2.一维数组的引用:通过索引方式调用(0-length-1)
3.数组的属性:length
数组一旦初始化,其长度就是确定的。arr.length
数组长度一旦确定,就不可以修改
4.一维数组的遍历
for(int i = 0;i < names.length;i++)
{
System.out.println(names[i]);
}
5.数组元素的默认初始化值
>数组元素是整形:0
>数组元素是浮点型:0.0
>数组元素是char型:0或'u0000'
>数组元素是boolean型:false
>数组元素是引用数据类型:null
6.一维数组的内存解析
四、二维数组1.如何理解二维数组?
数组属于引用数据类型,数组的元素也可以是引用数据类型
1.1理解
可以理解成一维数组array1作为另一个一维数组array2的元素存在。
其实,从底层上看没有多维数组
2.二维数组的声明与初始化
//静态初始化
int[][] arr1 = new int[][] {{1,2,3},{4,5},{6,7,8}};
//动态初始化1
String[][] arr2 = new String[3][2];//三行两列
//动态初始化2
String[][] arr3 = new String[3][];
3.如何调用数组的指定位置的元素
System.out.println(arr1[2][1]);
4.二维数组的属性:
int[][] arr1 = new int[][] {{1,2,3},{4,5},{6,7,8}};
获取数组长度
System.out.println(arr1.length);//3(行)
System.out.println(arr1[0].length);//3(列)
System.out.println(arr1[1].length);//2(列)
5.如何遍历数组
for(int i = 0;i < arr1.length;i++) {
for(int j = 0;j < arr1[i].length;j++) {
System.out.print(arr1[i][j] + " ");
}
System.out.println();
}
6.二维数组元素的默认初始化值
规定:二维数组分为外层数组的元素,内层数组的元素
int[][] arr = new int[4][3];
外层元素:arr[0],arr[1]等
内层元素:arr[0][0],arr[1][2]等
比如:int[][] arr = new int[4][3];
外层元素初始化值:地址值
内层元素初始化值:与一维数组初始化情况相同
初始化方式一:比如:int[][] arr = new int[4][];
外层元素初始化值:null
内层元素初始化值:不能调用,报错



