在java中如何给数组赋值
数组初始化的方法
在Java中,可以通过多种方式为数组赋值。数组的赋值操作可以在声明时完成,也可以在声明后单独进行。
静态初始化(声明时赋值)
int[] numbers = {1, 2, 3, 4, 5};
String[] names = {"Alice", "Bob", "Charlie"};
动态初始化(先声明后赋值)
int[] numbers = new int[5];
numbers[0] = 1;
numbers[1] = 2;
numbers[2] = 3;
numbers[3] = 4;
numbers[4] = 5;
使用循环为数组赋值
对于大型数组或需要按规律赋值的场景,可以使用循环结构简化赋值过程。
使用for循环
int[] squares = new int[10];
for (int i = 0; i < squares.length; i++) {
squares[i] = (i + 1) * (i + 1);
}
使用增强for循环(仅适用于读取) 注意:增强for循环不能用于修改数组元素值,只能用于读取。
使用Arrays类的方法
Java的java.util.Arrays类提供了便捷的数组操作方法。
fill方法填充相同值
int[] data = new int[100];
Arrays.fill(data, -1); // 所有元素赋值为-1
setAll方法使用生成函数
int[] sequence = new int[10];
Arrays.setAll(sequence, i -> i * 2); // 0,2,4,...18
多维数组赋值
多维数组的赋值原理与一维数组类似,但需要考虑多个维度。
二维数组静态初始化
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
二维数组动态初始化
int[][] matrix = new int[3][3];
matrix[0][0] = 1;
matrix[0][1] = 2;
// 其他元素赋值...
数组拷贝
有时需要将一个数组的值赋给另一个数组,需要注意深浅拷贝的区别。
System.arraycopy方法
int[] source = {1, 2, 3, 4, 5};
int[] dest = new int[5];
System.arraycopy(source, 0, dest, 0, source.length);
Arrays.copyOf方法
int[] original = {1, 2, 3};
int[] copied = Arrays.copyOf(original, original.length);
注意事项
- 数组索引从0开始,最大索引为length-1
- 尝试访问超出范围的索引会抛出ArrayIndexOutOfBoundsException
- 基本类型数组和对象数组的默认值不同(0/false/null)
- 数组长度在创建后固定,无法动态调整







