Java开发
JAVA中的一维数组
2025-02-03 23 0
简介 JAVA中的一维数组基础知识
在Java中,一维数组是一种存储相同数据类型元素的线性数据结构,通过索引访问元素。以下是关于一维数组的基本说明:
个人见解,如有错误请指出
1. 声明数组
数组的声明需要指定数据类型和数组名,格式如下:
java
方式1:声明数组(未初始化)数据类型[] 数组名; 例如:int[] numbers; 方式2:声明数组(C风格,不推荐)数据类型 数组名[]; 例如:int numbers[];
2. 初始化数组
数组必须初始化后才能使用,常见初始化方式如下:
静态初始化
直接指定元素值,适用于已知具体元素的场景:
java
复制
数据类型[] 数组名 = {元素1, 元素2, ..., 元素n}; 示例:int[] numbers = {10, 20, 30, 40, 50}; String[] names = {"Alice", "Bob", "Charlie"};
动态初始化
先指定数组长度,再逐个赋值,适用于元素值后续确定的场景:
数据类型[] 数组名 = new 数据类型[长度]; // 示例:int[] numbers = new int[5];
3. 访问数组元素
索引范围:从
0
到数组长度
。语法:
数组名[索引]
int[] numbers = {10, 20, 30, 40, 50}; System.out.println(numbers[0]); // 输出:10 System.out.println(numbers[3]); // 输出:40
4. 数组长度
通过 数组名.length
获取数组长度(注意是属性,不是方法):
int[] numbers = {10, 20, 30}; System.out.println(numbers.length); // 输出:3
5. 遍历数组
使用普通 for
循环
适合需要索引的场景:
for (int i = 0; i < numbers.length; i++) { System.out.println("索引 " + i + ": " + numbers[i]);}
使用增强 for
循环(for-each)
适合仅需访问元素,无需索引的场景:
for (int num : numbers) { System.out.println(num);}
6. 默认初始值
数据类型 | 默认值 |
---|---|
int /double | 0 /0.0 |
boolean | false |
引用类型 | null |
7. 数组的常见操作
复制数组
java
复制
// 方式1:System.arraycopy() int[] source = {1, 2, 3}; int[] dest = new int[3]; System.arraycopy(source, 0, dest, 0, source.length); // 方式2:Arrays.copyOf() int[] dest = Arrays.copyOf(source, source.length);
排序数组
int[] numbers = {5, 3, 8, 1}; Arrays.sort(numbers); // 排序后:{1, 3, 5, 8}
8. 常见的一些错误
数组越界(ArrayIndexOutOfBoundsException)
int[] arr = {1, 2, 3}; System.out.println(arr[3]); // 错误!最大索引为2,因为下标是从0开始的
空指针异常(NullPointerException)
int[] arr = null; System.out.println(arr[0]); // 错误!数组没有进行初始化
9. 示例代码
public class ArrayExample { public static void main(String[] args) { // 静态初始化 int[] scores = {90, 85, 78, 95, 88}; // 遍历并计算总分 int total = 0; for (int score : scores) { total += score; } System.out.println("总分:" + total); // 输出:436 // 动态初始化 String[] students = new String[3]; students[0] = "Alice"; students[1] = "Bob"; students[2] = "Charlie"; // 输出所有学生 for (int i = 0; i < students.length; i++) { System.out.println("学生" + (i+1) + ": " + students[i]); } }}
总结
一维数组是存储相同类型元素的线性集合。
索引从0开始,最大索引为
数组长度-1
。初始化方式分为静态和动态,需注意默认值。
遍历时可根据需求选择普通
for
或增强for
循环。操作数组时需避免越界和空指针异常