如何在main函数中打印另一个类的数组?附代码示例
在main函数中打印数组的几种可行方法
嘿,你的代码其实已经能正常输出数组里的爱好列表啦!不过我可以给你几个更简洁、更符合Java最佳实践的实现方式,让代码看起来更优雅:
方法1:使用Arrays.toString()快速打印
Java的java.util.Arrays工具类提供了现成的toString()方法,可以直接把数组转换成可读性好的字符串,不用自己写循环。修改后的代码如下:
import java.util.Arrays; public class HobbyPrinter { public static void main(String[] args) { MainHobby hobs = new MainHobby(); System.out.println("My Hobbies are: "); // 直接打印数组的字符串形式 System.out.println(Arrays.toString(hobs.getHobby())); } } class MainHobby { // 建议把成员变量设为private,符合封装原则 private String[] hobby = {"Reading", "Swimming", "Running"}; // 提供getter方法供外部访问 public String[] getHobby() { return hobby; } }
输出结果会是:
My Hobbies are: [Reading, Swimming, Running]
方法2:使用增强for循环(for-each)
如果你还是想保持逐条带序号打印的格式,增强for循环比普通for循环更简洁,不用手动管理索引:
public class HobbyPrinter { public static void main(String[] args) { MainHobby hobs = new MainHobby(); System.out.println("My Hobbies are: "); int num = 1; // 增强for循环遍历数组 for (String hobby : hobs.getHobby()) { System.out.println(num + ": " + hobby); num++; } } } class MainHobby { private String[] hobby = {"Reading", "Swimming", "Running"}; public String[] getHobby() { return hobby; } }
方法3:使用Java 8+的Stream API(现代化方式)
如果你的项目用的是Java 8及以上版本,Stream API可以让代码更简洁,还能灵活处理数据:
import java.util.Arrays; public class HobbyPrinter { public static void main(String[] args) { MainHobby hobs = new MainHobby(); System.out.println("My Hobbies are: "); // 用Stream遍历并打印,同时生成序号 Arrays.stream(hobs.getHobby()) .map(hobby -> (Arrays.asList(hobs.getHobby()).indexOf(hobby) + 1) + ": " + hobby) .forEach(System.out::println); } } class MainHobby { private String[] hobby = {"Reading", "Swimming", "Running"}; public String[] getHobby() { return hobby; } }
另外提个小细节:Java的类名规范是首字母大写(比如MainHobby而不是mainHobby),成员变量名用小驼峰(hobby而不是Hobby),这样代码的可读性会更好哦~
内容的提问来源于stack exchange,提问作者Shermine
相关产品推荐
相关产品推荐

