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

Java中打印数组元素对应位置的其他实现方法

可选实现方案

你当前的写法可以正常输出符合要求的结果,但可以通过简化逻辑、减少遍历次数优化代码,以下是两种常用的替代实现:

1. 单次遍历实现(执行效率更高)

原代码通过两次循环分别遍历数组处理偶数、奇数,实际只需一次遍历就能完成奇偶判断和计数,减少数组扫描次数,同时用格式化输出简化字符串拼接逻辑:

public class samt {
    public static void main(String[] args){
        int Num[] = {1,2,3,4,5,6,7,8,9,10};
        int evenCtr = 1, oddCtr = 0;
        // 单次遍历同时处理奇偶
        for (int cur : Num) {
            if (cur % 2 == 0) {
                System.out.printf("Even[%d]=%d%n", evenCtr, cur);
                evenCtr += 2;
            } else {
                System.out.printf("Odd[%d]=%d%n", oddCtr, cur);
                oddCtr += 2;
            }
        }
    }   
}

这个实现的输出结果和原代码完全一致,代码行数更少,遍历数组的次数从2次降到1次,数组长度较大时性能优势会更明显。

2. 分类收集实现(可维护性更强)

如果后续需要对奇偶元素做额外处理(比如过滤、排序、统计),可以先把奇偶元素分类存储到不同集合,再统一输出,逻辑拆分更清晰:

import java.util.ArrayList;
import java.util.List;

public class samt {
    public static void main(String[] args){
        int Num[] = {1,2,3,4,5,6,7,8,9,10};
        List<Integer> evenList = new ArrayList<>();
        List<Integer> oddList = new ArrayList<>();
        
        // 第一步:分类收集奇偶元素
        for (int cur : Num) {
            if (cur % 2 == 0) {
                evenList.add(cur);
            } else {
                oddList.add(cur);
            }
        }
        
        // 第二步:按规则输出偶数
        for (int i = 0; i < evenList.size(); i++) {
            System.out.printf("Even[%d]=%d%n", 2*i + 1, evenList.get(i));
        }
        
        // 第三步:按规则输出奇数
        for (int i = 0; i < oddList.size(); i++) {
            System.out.printf("Odd[%d]=%d%n", 2*i, oddList.get(i));
        }
    }   
}

这个写法不需要在遍历过程中维护两个计数器,输出位置直接通过集合下标计算即可,逻辑更直观,修改输出规则时只需要调整对应输出段的代码即可,不会影响分类逻辑。

小提示:Java编码规范推荐类名使用大驼峰格式、变量和方法名使用小驼峰格式,你当前代码里的类名samt、数组名Num不符合规范,实际开发中建议调整为Samt、num。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 22:18:13