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

如何在main方法中使用数组元素?解决数组输出地址问题

嘿,我来帮你搞定这两个Java数组的问题,都是日常开发里很常见的场景,咱们一步步来:

问题1:如何在main方法中使用数组中的元素?

不管数组是你在main方法里直接创建的,还是从其他方法传进来/返回的,访问元素的方式都很直接,主要有这几种:

  1. 通过索引直接访问单个元素:数组的索引从0开始,直接用数组名[索引]就能拿到对应位置的元素。
  2. 遍历数组访问所有元素:用普通for循环或者增强for循环(for-each)来逐个处理每个元素。

给你举个完整的代码例子:

public class ArrayUsage {
    public static void main(String[] args) {
        // 先创建并初始化一个数组
        int[] comNumber = {15, 25, 35, 45};
        
        // 访问单个元素
        System.out.println("数组的第一个元素是:" + comNumber[0]);
        System.out.println("数组的第三个元素是:" + comNumber[2]);
        
        // 用普通for循环遍历所有元素
        System.out.println("\n普通for循环遍历数组:");
        for (int i = 0; i < comNumber.length; i++) {
            System.out.println("第" + (i+1) + "个元素:" + comNumber[i]);
        }
        
        // 用增强for循环遍历(更简洁,不需要管索引)
        System.out.println("\n增强for循环遍历数组:");
        for (int num : comNumber) {
            System.out.println(num);
        }
    }
}

运行这段代码,你就能看到数组里的每个元素都被正确访问和输出啦。

问题2:在ranNumber()方法中使用comNumber数组元素,但main()调用时显示数组地址,怎么解决?

这个问题的根源是:当你直接打印一个数组对象时,Java默认会调用数组的toString()方法,而数组的默认toString()只会输出它的哈希码(就是你看到的类似[I@1b6d3586的“地址”),不会自动打印里面的元素。

解决方法分两种场景,看你的需求是哪种:

场景1:ranNumber方法返回数组,main方法需要打印数组元素

如果你的ranNumber方法是处理数组后返回它,那在main里别直接打印返回的数组,而是用下面两种方式:

方式一:手动遍历数组打印

public class ArrayPrintFix {
    // 假设ranNumber方法是处理数组并返回
    public static int[] ranNumber(int[] comNumber) {
        // 这里做一些处理,比如给每个元素加10
        for (int i = 0; i < comNumber.length; i++) {
            comNumber[i] += 10;
        }
        return comNumber;
    }

    public static void main(String[] args) {
        int[] comNumber = {1, 2, 3};
        int[] processedArray = ranNumber(comNumber);
        
        // 遍历打印每个元素
        System.out.println("处理后的数组元素:");
        for (int num : processedArray) {
            System.out.print(num + " ");
        }
    }
}

方式二:用Arrays.toString()工具方法(更简便)

Java提供了java.util.Arrays工具类,里面的toString()方法可以直接把数组转换成包含所有元素的字符串,需要先导入这个类:

import java.util.Arrays;

public class ArrayPrintFix {
    public static int[] ranNumber(int[] comNumber) {
        for (int i = 0; i < comNumber.length; i++) {
            comNumber[i] += 10;
        }
        return comNumber;
    }

    public static void main(String[] args) {
        int[] comNumber = {1, 2, 3};
        // 直接用Arrays.toString()打印数组
        System.out.println("处理后的数组:" + Arrays.toString(ranNumber(comNumber)));
        // 输出结果:处理后的数组:[11, 12, 13]
    }
}

场景2:ranNumber方法内部需要使用并输出数组元素

如果你的ranNumber方法本身就要用到数组元素并输出,那就在方法内部做遍历或者用Arrays.toString(),而不是直接打印数组对象:

import java.util.Arrays;

public class ArrayInMethod {
    public static void ranNumber(int[] comNumber) {
        // 使用数组元素,比如计算平均值
        int sum = 0;
        for (int num : comNumber) {
            sum += num;
        }
        double avg = (double) sum / comNumber.length;
        System.out.println("数组元素的平均值是:" + avg);
        
        // 直接打印所有元素
        System.out.println("数组的所有元素:" + Arrays.toString(comNumber));
    }

    public static void main(String[] args) {
        int[] comNumber = {10, 20, 30, 40};
        ranNumber(comNumber); // 调用后直接输出元素相关内容,不会显示地址
    }
}

总结一下:想要显示数组元素,绝对不能直接打印数组对象,要么手动遍历输出每个元素,要么用Arrays.toString()工具方法来帮你格式化输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:38:59