一、数组概述
在Java中容器有很多,目前所学的有变量、常量,还有数组,但是不管是变量还是常量,只能保存一个数据,而数组可以保存多个数据
-
数组和变量的区别
- 变量
- 内存:栈内存
- 初始值:无
- 个数:1个
- 类型:基本数据类型
- 数组
- 内存:堆内存
- 初始值:有
- 个数:多个
- 类型:引用数据类型
- 变量
-
基本数据类型和引用数据类型
- 基本数据类型
- 在栈内存中开辟内存空间
- 没有首地址
- 没有初始值
- 只能保存一个数据
- 引用数据类型
- 在堆内存中开辟内存空间
- 有首地址【内存空间地址】
- 有初始值【根据数据类型而定】
- 可以保存多个数据
- 基本数据类型
数组分为两类:一维数组、二维数组…多维数组【本质还是一维数组】
二、一维数组
1、声明数组
语法:
数据类型[] 数组名;
数据类型 数组名[];
代码案例
int[] array;
int array[];
数据类型:指定的是数组容器类型,同时对应着存储数据的数据类型
2、定义长度
语法:
数组名 = new 数据类型[长度];
代码案例
// 定义了数组的长度【只能存储5个数据】
array = new int[5];
System.out.println("首地址:"+array);
注意:
1、数组长度一旦定义,不能改变
2、数组长度一旦改变,会出现下标越界异常:java.lang.ArrayIndexOutBoundsException
3、赋值数据
语法:
数组名[下标] = 数据;
代码案例
// 123数据存储到array数组中下标为2的位置
array[2] = 123;
4、获取数据
语法:
数组名[下标];
代码案例
// 根据数组名[下标]获取即可
// 0、通过array获取保存的数组内存空间地址
// 1、通过首地址查找内存空间
// 2、通过下标在内存空间中查找并返回对应的数据
System.out.println(array[2]);
三、数组属性:length
length是数组中内置的属性,用于获取数组的长度
语法:
数组名.length;
代码案例
int[] array;
array = new int[4];
System.out.println(array.length);// 4
四、数组遍历
数组遍历:利用for循环实现获取数组中所有的数据
语法:
for(int i = 0; i < 数组名.length; i++){
数组名[i]
}
代码案例
package cn.com.example4;
public class Demo00 {
public static void main(String[] args) {
int[] array;
array = new int[4];
array[0] = 11;
array[1] = 22;
array[2] = 33;
array[3] = 44;
// 数组遍历
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
}
}
五、数组简写
1、方式一
声明数组时直接定义长度
语法:
数据类型[] 数组名 = new 数据类型[长度];
数据类型 数组名[] = new 数据类型[长度];
代码案例
int[] array = new int[5];
int array[] = new int[5];
2、方式二
声明数组时直接初始化值,长度根据数据的个数而定
语法:
数据类型[] 数组名 = new 数据类型[]{数据1,数据2,数据3...};
数据类型[] 数组名 = {数据1,数据2,数据3...};
代码案例
int[] array = new int[]{11,22,33,44,55};
int[] array = {11,22,33,44,55};