数组
数组是存储在堆上的对象,可以保存多个同类型的变量,记住,必须是同类型的
数组的概念
- 数组是多个相同类型数据按一定的顺序排序的集合,并使用一个名字命名。并通过编号的方式对这些数据进行统一的管理。
- 数组的常见概念
- 数组名
- 下标(索引)
- 元素
- 数组的长度
数组的特点
- 数组本身是引用数据类型的变量,数组的元素既可以是基本数据类型,也可以是引用数据类型
- 创建数组对象会在内存中创建一整块连续的内存空间
- 数组的长度一旦初始化就无法修改
数组的分类
①按照维度:一维数组、二维数组....
②按照数组元素的类型:基本数据类型元素的数组、引用数据类型元素的数组
一维数组
//数组的声明-初始化-使用
int[] ids;//声明1
int ids2[];//声明2
// int ids[3];//非法:声明过程不能指定长度
ids=new int[]{1000,1001,1002,1003};//静态初始化1(new) 分配空间并赋值
// ids2={3,5,7,8,9};//非法:数组直接赋值,必须在声明阶段直接赋值
int[] ids3={3,5,7,8,9};//静态初始化2 分配空间并赋值
String[] names=new String[5];//动态初始化(new):new就会默认赋值
for (int i = 0; i < names.length; i++) {
System.out.print(names[i]+" ");
}//null null null null null(引用类型默认值为null,基本数据类型默认值各有不同)
//通过角标方式调用或赋值
names[0]="hello";
names[1]="world";
names[2]="JAVA";
names[3]="I will";
names[4]="work hard";
// names.length可获取数组的长度
for (int i = 0; i < names.length; i++) {
System.out.print(names[i]+" ");
}//hello world JAVA I will work hard
二维数组
//数组的声明-初始化-使用
int[][] ods;//声明
ods=new int[][]{{1,2},{2,3,4},{3,4,5,6}};//静态初始化
String[][] people=new String[3][];//动态初始化方式1
String[][] man=new String[3][3];//动态初始化方式2
people[0]=new String[3];//与初始化时的数据类型必须一致
people[1]=new String[2];//二维数组实际上是多个一维数组组成的,因此二维数组内的一维数组长度可以不一样
people[2]=new String[1];
people[0][0]="张三";
people[0][1]="女";
people[0][2]="19";
people[1][0]="刘备";
people[1][1]="男";
people[2][0]="伽罗";
for (int i = 0; i < people.length; i++) {
for (int j = 0; j <people[i].length ; j++) {
System.out.println("people="+people[i][j]);
}
}