繁体   English   中英

Java - 将数组从方法返回到main

[英]Java - Returning an array from a method to main

如果有人可以帮我解决以下问题,我会很高兴。 下面的方法假设返回一个数组,其第i个条目是int i出现在数组a中的次数。 方法名称使用此方法。 绘制数组a中的数据直方图。

    public static int histogram(int M, int[] a){

        int[] b = new int[M];

        for (int i = 0; i < M; i++){

           int w = 0; 

            for (int j = 0; j < a.length; j++){ 

            if (a[j] == i){ 
            w++;
            }
        }

           b[i] = w; 

     }

   return b; 
}

对我来说代码是正确的 - 它可能是错的 - 我无法测试它,因为我有一个错误,这真的让我烦恼。

Histogram.java:22:找到不兼容的类型:int [] required:int return b;

1)上面的意思是什么? 例如在互联网和我的手册中,他们也只使用“返回b;” 将数组返回主程序。

2)返回功能究竟如何工作? 我是否可以使用以下代码打印数组b的值? 因为此刻我得到一个错误,因为数组b没有在main中初始化...我认为如果错误1被整理出来,错误就会消失。 我是JAVA的新手,所以我真的不知道 - 编程新手。

for (int x = 0; x < M; x++){

        System.out.printf("%d ", b[x]);

     }`

3)我是否可以在histogram()方法中打印值? 要回答的问题是使用直方图值“返回”数组。

如果你能提供帮助,真的很高兴......

如果你走到这一步 - 非常感谢...即使只是阅读到这里意味着很多:)

您应该尝试返回整数数组而不是单个整数

public static int[] histogram ...

不过,我不确定2和3。

2) return不是函数,它是一个让你离开方法的关键字。
3)如果你愿意,你可以。

编辑
无论你在histogram方法中声明的变量是什么,它们都是本地的。 如果你想在main方法中使用一些变量,请声明它。 例如,

int[] b = histogram(param1, param2);

2.)你的主要应该有这样的东西:

int[] b = histogram(M, a);

3.)不管你认为它更好我认为 - 将输入/输出内容保留在main中,并在直方图方法中保留直方图构造内容。

Public static int[] // since the return is an array

我想你可以调用方法histogram(); main method ,希望它能起作用。

当你使用一个数组时,你应该把它写在一个不在类体中的类的方法中

并且return也不是方法或函数,它只是我们在方法中使用的关键字

所以在方法中写它然后再次编译!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM