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

Java字符串多维数组元素展示代码优化咨询

精简优化你的Java代码:从基础改进到面向对象重构

嘿,作为编程新手能写出正常运行的代码已经超棒啦!你的这段代码确实有不少可以精简、优化的空间,我来一步步给你拆解,让代码更简洁、可读性更强还更易维护~

先看原代码的几个小问题

原代码功能没问题,但存在这些可以改进的点:

  • 代码挤在一起,格式混乱,读起来费劲
  • 用一堆if-else判断列标题,冗余且不灵活
  • 硬编码了循环次数(i < 4、j < 4),以后数组增减元素还要手动改数字
  • 所有逻辑都堆在main方法里,不符合代码复用的思路

优化步骤1:整理代码格式,让结构一目了然

先把代码的缩进、换行调整好,这是最基础但很重要的一步:

public class Exercise4 {
    public static void main(String[] args) {
        String[][] info = {
            {"010","John","Male","21"},
            {"011","Mary","Female","25"},
            {"012","Joseph","Male","24"},
            {"013","Peter","Male","22"}
        };
        
        for(int i = 0; i < 4; i++) {
            for(int j = 0; j < 4; j++) {
                if(j == 0) {
                    System.out.print("ID: ");
                } else if(j == 1) {
                    System.out.print("Name: ");
                } else if(j == 2) {
                    System.out.print("Gender: ");
                } else if(j == 3) {
                    System.out.print("Age: ");
                }
                System.out.println(info[i][j]);
            }
            System.out.println();
        }
    }
}

优化步骤2:用标题数组替换冗余的if-else

把列标题存在一个数组里,直接通过索引取对应标题,省去一堆判断:

public class Exercise4 {
    public static void main(String[] args) {
        String[] headers = {"ID: ", "Name: ", "Gender: ", "Age: "};
        String[][] info = {
            {"010","John","Male","21"},
            {"011","Mary","Female","25"},
            {"012","Joseph","Male","24"},
            {"013","Peter","Male","22"}
        };
        
        for(int i = 0; i < info.length; i++) {
            for(int j = 0; j < info[i].length; j++) {
                System.out.print(headers[j]);
                System.out.println(info[i][j]);
            }
            System.out.println();
        }
    }
}

这里还顺便把i < 4改成了i < info.length,j < 4改成j < info[i].length,以后数组加了新用户或者新字段,循环条件不用改啦!

优化步骤3:封装打印逻辑,让main更简洁

把打印用户信息的逻辑抽成单独的方法,以后要打印类似结构的数组直接调用就行:

public class Exercise4 {
    public static void main(String[] args) {
        String[] headers = {"ID: ", "Name: ", "Gender: ", "Age: "};
        String[][] info = {
            {"010","John","Male","21"},
            {"011","Mary","Female","25"},
            {"012","Joseph","Male","24"},
            {"013","Peter","Male","22"}
        };
        
        printUserInfo(headers, info);
    }
    
    private static void printUserInfo(String[] headers, String[][] userData) {
        for(String[] user : userData) { // 用增强for循环,更简洁
            for(int j = 0; j < user.length; j++) {
                System.out.print(headers[j]);
                System.out.println(user[j]);
            }
            System.out.println();
        }
    }
}

这里还用了增强for循环(for(String[] user : userData)),代替原来的普通for循环,代码更简洁易懂。

进阶优化:用面向对象思想重构(更符合Java风格)

既然是用户信息,不如创建一个User类来封装属性,这样代码更清晰,以后要加用户的其他属性或者行为也方便:

public class Exercise4 {
    static class User {
        private String id;
        private String name;
        private String gender;
        private int age;
        
        public User(String id, String name, String gender, int age) {
            this.id = id;
            this.name = name;
            this.gender = gender;
            this.age = age;
        }
        
        // 打印用户信息的方法
        public void printInfo() {
            System.out.println("ID: " + id);
            System.out.println("Name: " + name);
            System.out.println("Gender: " + gender);
            System.out.println("Age: " + age);
            System.out.println();
        }
    }
    
    public static void main(String[] args) {
        User[] users = {
            new User("010", "John", "Male", 21),
            new User("011", "Mary", "Female", 25),
            new User("012", "Joseph", "Male", 24),
            new User("013", "Peter", "Male", 22)
        };
        
        for(User user : users) {
            user.printInfo();
        }
    }
}

这样一来,用户的属性和行为都封装在User类里,代码的可读性和可维护性大大提升,以后要修改用户信息的打印格式,直接改printInfo()方法就行,不用动其他逻辑。


这些优化步骤是循序渐进的,你可以根据自己的学习阶段选择适合的版本~从基础的格式调整、减少冗余,到进阶的面向对象重构,每一步都能让代码更“专业”哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:27:31