You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何初始化大小为n的空Java int数组?实现仅返回有效元素的数组

Java数组相关问题解答

嘿,这两个Java数组的问题我熟,给你一步步讲清楚~

问题1:如何初始化一个大小为n的空Java int数组?

在Java里,初始化指定大小的int数组很直接,代码如下:

int[] emptyArr = new int[n];

这里要注意:Java的基本类型数组(比如int)初始化后,每个元素会被自动赋予默认值0——因为int是值类型,不存在真正意义上的“空”元素。如果你的“空数组”指的是长度为0的数组,那可以写new int[0],不过你明确要求大小为n,上面的写法就完全符合需求啦。

问题2:初始化最大容量为n的数组,添加3个元素后返回仅包含这3个元素的数组(不使用ArrayList)

首先得明确Java数组的关键特点:数组的长度是固定不变的,一旦创建就没法修改。所以如果你一开始创建了长度为n的数组,未赋值的位置会默认填充0,直接返回的话肯定会带那些0。

要实现你的需求,思路很简单:最后返回时,新建一个刚好能装下3个元素的数组,把原数组里的有效元素复制进去就行。给你写个实用的代码示例:

public static int[] getFilledArray(int n) {
    // 初始化最大容量为n的数组
    int[] tempArray = new int[n];
    
    // 添加3个示例元素(你可以换成自己需要的任意值)
    tempArray[0] = 1;
    tempArray[1] = 2;
    tempArray[2] = 3;
    
    // 方式1:用System.arraycopy复制有效元素,性能优异
    int[] resultArray = new int[3];
    System.arraycopy(tempArray, 0, resultArray, 0, 3);
    
    // 方式2:用Arrays.copyOf,代码更简洁(需导入java.util.Arrays)
    // int[] resultArray = Arrays.copyOf(tempArray, 3);
    
    return resultArray;
}

这样返回的resultArray长度就是3,里面只有你添加的3个元素,不会带后面的默认0。

如果你不想一开始就创建大数组,也可以维护一个计数器动态扩容,但你要求初始化最大容量为n,所以先建n的数组再截断的方式最直接高效。


内容的提问来源于stack exchange,提问作者Mahith Bhima

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:01:36