知识点:数组的声明、初始化、元素访问、赋值、常见操作
一、数组是什么
数组:一组相同类型数据的容器,在内存中连续存放。
数组的特点:
- 只能存储同一种类型的数据;
- 长度固定,创建后不能随便改变;
- 每个数据叫 "元素",通过索引 / 下标访问;
- 索引从
0开始,不是从1开始。
二、数组的声明和初始化
2.1 声明数组
告诉 Java:"我要一个什么类型的数组"。
// 两种常用写法
int[] arr; // 推荐:中括号跟在类型后面
int arr[]; // 语法正确,但不推荐
2.2 静态初始化:直接给出元素内容
格式:
数据类型[] 数组名 = {元素1, 元素2, 元素3, ...};
示例:
public class ArrayDemo1 {
public static void main(String[] args) {
// 静态初始化:创建数组并直接赋值
int[] arr = {10, 20, 30, 40, 50};
System.out.println(arr[1]); // 输出20,索引从0开始
}
}
2.3 动态初始化:先指定长度,之后再赋值
格式:
数据类型[] 数组名 = new 数据类型[数组长度];
示例:
public class ArrayDemo2 {
public static void main(String[] args) {
// 动态初始化:创建一个长度为5的int数组
int[] arr = new int[5];
// 之后给每个元素赋值
arr[0] = 10;
arr[1] = 20;
arr[2] = 30;
arr[3] = 40;
arr[4] = 50;
System.out.println(arr[2]); // 输出30
}
}
注意:动态初始化时,数组元素会有默认值。
int、byte、short、long默认值是0float、double默认值是0.0char默认值是空字符boolean默认值是false- 引用类型默认值是
null
三、数组元素的访问和赋值
3.1 访问元素
格式:
数组名[索引];
示例:
public class ArrayDemo3 {
public static void main(String[] args) {
int[] arr = {10, 20, 30, 40, 50};
System.out.println(arr[0]); // 10
System.out.println(arr[2]); // 30
System.out.println(arr[4]); // 50
}
}
3.2 给元素赋值
格式:
数组名[索引] = 值;
示例:
public class ArrayDemo4 {
public static void main(String[] args) {
int[] arr = new int[3];
arr[0] = 100;
arr[1] = 200;
arr[2] = 300;
System.out.println(arr[1]); // 输出200
}
}
3.3 数组长度
数组长度:数组中元素的个数。 格式:数组名.length
public class ArrayDemo5 {
public static void main(String[] args) {
int[] arr = {10, 20, 30, 40, 50};
System.out.println(arr.length); // 输出5
}
}
3.4 索引越界异常
索引范围:0 ~ 数组长度-1。 如果访问不存在的索引,会报错:ArrayIndexOutOfBoundsException。
public class ArrayDemo6 {
public static void main(String[] args) {
int[] arr = {10, 20, 30};
// arr[3] = 40; // 报错!索引最大是2
}
}
四、数组的常见操作
4.1 遍历数组
遍历:把数组中的每个元素依次取出来。
public class ArrayDemo7 {
public static void main(String[] args) {
int[] arr = {10, 20, 30, 40, 50};
// for循环遍历
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
4.2 求和
public class ArrayDemo8 {
public static void main(String[] args) {
int[] arr = {10, 20, 30, 40, 50};
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
System.out.println("总和:" + sum); // 150
}
}
4.3 求最大值
public class ArrayDemo9 {
public static void main(String[] args) {
int[] arr = {12, 45, 9, 68, 23};
int max = arr[0]; // 先把第一个元素的值20;
for (int i = 0; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
System.out.println("最大值:" + max);
}
}
4.4 元素查找
判断某个数在数组中是否存在:
public class ArrayDemo10 {
public static void main(String[] args) {
int[] arr = {10, 20, 30, 40, 50};
int target = 30;
boolean isExist = false;
for (int i = 0; i < arr.length; i++) {
if (arr[i] == target) {
isExist = true;
break; // 找到就<[SILENT_never_used_51bce0c785ca2f68081bfa7d91973934]>
}
}
System.out.println("存在:" + target + "吗?" + isExist);
}
}
4.5 数组反转
把数组元素倒过来存放。
public class ArrayDemo11 {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
// 反转:交换元素位置
for (int i = 0; i < arr.length / 2; i++) {
int temp = arr[i];
arr[i] = arr[arr.length - 1 - i];
arr[arr.length - 1 - i] = temp;
}
// 输出结果
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
// 输出:5 4 3 2 1
}
}
本章小结
- 数组:相同类型、长度固定的元素容器,索引从 0 开始。
- 初始化:静态初始化直接写元素;动态初始化先指定长度。
- 访问 / 赋值 :
数组名[索引],注意索引不能越界。 - 常见操作:遍历、求和、求最大值、查找、反转。