1、数组与变量的区别:
(1)变量: 存储单个数据
(2)数组: 存储多个数据,相同数据类型的有序集合,一段连续的内存空间
2、数组的特点:
(1)引用数据类型
(2)长度一旦确定不可改变
(3)存储的多个数据要求数据类型一致
(4)数组是有序的
(5)索引|下标:①第一个空间: 0,最后一个空间 : 数组名.length-1②数组的长度:数组名.length③操作数组中的数据:数组名[索引|下标]->确定数组中的某一块空间操作空间中的数据内容
3、结构:
(1)数组的声明
数据类型[] 数组名; --> 推荐
数据类型 数组名[];
(2)数组的初始化
①动态初始化: 先创建数组对象,然后赋值
a.数据类型[] 数组名 = new 数据类型[长度];
b.数据类型: 任意的数据类型
c.数组中存放数据的类型
不同类型的数组每一个空间存在默认值:
整数:0 小数:0.0 布尔: false 字符:空字符 引用: null
②静态初始化: 创建数组对象的同时赋值
a.数据类型[] 数组名 = new 数据类型[]{值1,值2,值3...};
b.数据类型[] 数组名 = {值1,值2,值3...};
(3)注意:
①ArrayIndexOutOfBoundsException 数组索引越界异常
4、数组的遍历
(1)普通for循环
(2)增强for循环|for..each:
for(数据类型 变量名i:数组名|集合名){
每一次循环中,i代表数组中的每一个数据
}
(3)注意:①普通循环遍历操作索引,索引控制变化情况,增强for循环遍历数组,只能从前到后遍历
②ArrayList 集合结构: 存储多个数据,长度可以根据数据的多少进行增删,有序有索引,存储相同的数据
③索引i作为原数组与新数组的索引
System.out.println(Arrays.toString(names));
④HashSet 集合结构: 存储多个数据,无序去重
5、二维数组:
(1)概念 :数组中存放数组
(2)声明:①数据类型[][] 数组名; -->推荐
②数据类型 数组名[][];
③数据类型[] 数组名[];
④数据类型 [][]数组名;
(3)初始化:①动态初始化 : 先创建数组然后赋值
a.数据类型[][] 数组名 = new 数据类型[外层的二维的长度][内层的一维的长度];
b.特点: 内层的每一个一维数组长度相同
a数据类型[][] 数组名 = new 数据类型[外层的二维的长度][];
b.特点: 内层的每一个一维数组没有构建,长度有构建的时候指定,内层的每一个一维数组的创建按照一维数组的创建方式(动态,静态)
②静态初始化 : 创建数组的同时赋值
数据类型[][] 数组名 = new 数据类型[][]{{值1,值2,值...},{值1,值2,值...},{值1,值2,值...}....};
数据类型[][] 数组名 = {{值1,值2,值...},{值1,值2,值...},{值1,值2,值...}....};
(4)操作二维数组中的数据
数组名[外层二维索引][内层一维的索引]
(5)二维数组的遍历方式:
①普通嵌套普通
②普通嵌套增强
③增强嵌套增强
④增强嵌套普通