一、二维数组
1.1含义
概念:
1.数组中的数据又叫做元素
2.每个元素都有编号叫做下标/索引
3.下标从0开始
4.数组是引用数据类型
5.数组一旦初始化后,长度不可以改变(意味着数组不可以添加和删除)
6.数组存放元素的空间是连续的
1.2数组的声明
数组的声明:数据类型[][] 数组名; => 例如 String[][] 字符串类型数组 int[][] 整型数组
1.21初始化
数组的初始化:
1.静态初始化:数据由程序员指定,系统自动分配空间
2.动态初始化:长度由程序员指定,系统自动分配默认值
整数类型默认:0
浮点类型默认:0.0
字符类型默认:' '
布尔类型默认:false
引用类型默认:null-空
1.22 静态初始化 vs 动态初始化
一开始就知道数据,就使用静态初始化
一开始只知道长度,就使用动态初始化
1.221 静态初始化
package com.qf.test01;
public class Test01 {
public static void main(String[] args) {
//静态初始化1
//String[][] names = new String[][]{
{"椎名空","水菜丽","北岛玲"},{"上原亚衣","北条麻衣","小峰由衣","波多野结衣"}};
//静态初始化2(先声明,再初始化)
//String[][] names;
//names = new String[][]{
{"椎名空","水菜丽","北岛玲"},{"上原亚衣","北条麻衣","小峰由衣","波多野结衣"}};
//静态初始化3(简化静态初始化1)
String[][] names = {
{"椎名空","水菜丽","北岛玲"},{"上原亚衣","北条麻衣","小峰由衣","波多野结衣"}};
//设置指定下标上的元素
names[0][2] = "李伟杰";
//获取指定下标上的元素
System.out.println("获取指定下标上的元素:" + names[0][2]);
//获取长度
System.out.println("获取二维数组中一维数组的长度:" + names.length);//2
System.out.println("获取二维数组中第一个一维数组元素的长度:" + names[0].length);//3
System.out.println("获取二维数组中第二个一维数组元素的长度:" + names[1].length);//4
System.out.println("------------");
//遍历数组 -- for循环
for (int i = 0; i < names.length; i++) {
for (int j = 0; j < names[i].length; j++) {
System.out.println(names[i][j]);
}
}
System.out.println("------------");
//遍历数组 -- foreach
for (String[] ss : names) {
for (String e : ss) {
System.out.println(e);
}
}
//总结遍历思路:先获取二维数组中的一维数组,再遍历一维数组中的元素
}
}
1.222动态初始化
package com.qf.test01;
public class Test02 {
public static void main(String[] args) {
//动态初始化1
//String[][] names = new String[2][3];//创建二维数组,其中包含2个一维数组,每个一维数组包含