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

Java数组方法筛选奇数时输出多余零值的问题如何解决

问题根因

你当前代码输出多余0的核心问题是初始创建的数组长度和原数组一致,筛选完奇数后剩余的空位被你主动赋值为0,所以最终输出会携带多余的0值,且第一段遍历逻辑只是完整复制原数组,没有实际筛选作用,属于冗余代码。
另外注意判断奇数不要用%2 == 1,Java中负数取模结果为负,比如-3%2的结果是-1,该判断逻辑会漏掉负奇数。

修复后完整代码
import java.util.Arrays;

public class Odd {

    public int[] removeEvens(int [] nums) {
        // 先统计奇数的总数量
        int oddCount = 0;
        for (int num : nums) {
            if (num % 2 != 0) {
                oddCount++;
            }
        }
        // 按照奇数数量创建对应长度的新数组,避免多余空位
        int[] newArray = new int[oddCount];
        int curIndex = 0;
        // 遍历原数组把奇数存入新数组
        for (int num : nums) {
            if (num % 2 != 0) {
                newArray[curIndex++] = num;
            }
        }
        return newArray;
    }

    public static void main(String[] args) {
        Odd labObject = new Odd();
        int [] input = {1,2,3,4,5,6,7,8,9};
        int [] result = labObject.removeEvens(input);
        System.out.println(Arrays.toString(result)); // 输出[1, 3, 5, 7, 9]
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 18:45:06