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

如何正确将数组a中的偶数元素复制到新数组b中?

修正Java数组提取偶数元素的代码

原代码存在几个核心问题,导致无法实现需求:

  • 每次检测到偶数时都会重新创建数组b,之前存储的偶数会被完全覆盖
  • 数组b的长度硬编码为3,若原数组中偶数数量变化,要么浪费空间要么引发数组越界;且直接使用原数组的索引i给b赋值,很容易超出b的长度范围
  • 变量声明错误:int b = new int[3];应为int[] b,否则会编译失败

方案一:传统两步实现法

先统计偶数数量,再创建对应长度的数组存储:

int a[] = {1, 6, 3, 4, 5, 8, 7};

// 统计数组中的偶数个数
int evenCount = 0;
for (int num : a) {
    if (num % 2 == 0) {
        evenCount++;
    }
}

// 创建对应长度的数组并存储偶数
int[] b = new int[evenCount];
int currentIndex = 0;
for (int num : a) {
    if (num % 2 == 0) {
        b[currentIndex++] = num;
    }
}

// 输出验证结果
for (int num : b) {
    System.out.print(num + " ");
}

方案二:Java 8+ 流式API简化实现

利用流式API的筛选与转换功能,代码更简洁:

import java.util.Arrays;

int a[] = {1, 6, 3, 4, 5, 8, 7};
int[] b = Arrays.stream(a)
                .filter(num -> num % 2 == 0)
                .toArray();

// 输出验证结果
for (int num : b) {
    System.out.print(num + " ");
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 19:05:24