java怎么给数组赋值:四种写法按需选用
java怎么给数组赋值,一共包含静态直接赋值、下标逐个赋值、循环批量赋值、工具类统一赋值四种主流写法;静态赋值只适合声明数组时一次性写入固定值,二次重新赋值必须带上new关键字;下标赋值适合零散修改个别元素,循环赋值适合批量写入动态数据,Arrays.fill适合把全部元素统一设成同一个值;所有写法都不能突破数组初始长度,数组创建完成后长度无法修改,该规则来自Java语言规范JLS10.3条款。
静态初始化赋值
你在声明数组的同时直接写入全部元素,编译器自动根据元素数量确定数组长度,不需要手动填写长度数字。
简写格式仅能在数组初次声明时使用,数组变量二次重新赋值时,不能只写花括号,必须补全new数据类型[]前缀,否则代码无法编译运行。
示例代码:int[]arr={11,22,33};二次赋值写法:arr=newint[]{44,55,66};
下标逐个赋值
先使用new关键字创建指定长度的数组,此时所有元素会自动赋予默认值,int类型默认值为0,字符串类型默认值为null,之后通过数组下标单独修改对应位置的值。
数组下标从0开始,最大下标等于数组长度减一,下标超出范围会直接抛出数组越界异常。
示例代码:int[]arr=newint[3];arr[0]=10;arr[1]=20;
循环批量赋值
先用new开辟数组内存,再用for循环遍历每一个下标,给每一位元素循环写入数值,适合读取外部数据、遍历生成连续数字这类动态场景。
增强for循环只能读取数组元素,不能完成赋值操作,必须使用带索引的普通for循环完成批量赋值。
示例代码:int[]arr=newint[5];for(inti=0;i
工具类统一赋值
导入java.util.Arrays包,调用Arrays.fill方法,一键把数组所有元素改成同一个数值,不用手动编写循环代码,代码更加精简。
该方法支持只修改数组指定区间的元素,你可以传入起始下标与结束下标,只对部分位置赋值。
示例代码:Arrays.fill(arr,99);整段数组全部填充为99。
四种赋值方式对比
| 赋值方式 | 适用场景 | 限制条件 |
|---|---|---|
| 静态初始化 | 编译期数值固定、元素较少 | 二次赋值必须加new,不能只写{};长度由元素个数决定 |
| 下标逐个赋值 | 只修改少数几个元素 | 不能批量操作,下标越界会报错 |
| for循环赋值 | 运行时动态生成数据、批量写入 | 需要编写循环代码,代码行数更多 |
| Arrays.fill赋值 | 全部元素统一设置为同一个值 | 只能填充固定值,无法给每个元素写入不同数值 |
二维数组赋值遵循同样规则,先给一维行分配空间,再给每一行的列元素逐个赋值,不能直接跨行赋值未初始化的行数组。
