Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何打印返回数组的方法?_Java_Arrays - Fatal编程技术网

Java 如何打印返回数组的方法?

Java 如何打印返回数组的方法?,java,arrays,Java,Arrays,我提出了一种将二维数组转换为一维数组的方法,但打印时遇到了麻烦。在主方法中创建新数组或调用该方法时出现问题。有人能帮忙吗 public class flatten { public static int[] flatten1(int[][] a){ int c=0; for(int i=0;i<a.length;i++){ for(int j=0;j<a[i].length;j++){ c++; }

我提出了一种将二维数组转换为一维数组的方法,但打印时遇到了麻烦。在主方法中创建新数组或调用该方法时出现问题。有人能帮忙吗

public class flatten {

public static int[] flatten1(int[][] a){
    int c=0;
    for(int i=0;i<a.length;i++){
        for(int j=0;j<a[i].length;j++){
            c++;
        }   
    }

    int[] x = new int[c];
    int k=0;

    for(int i=0;i<a.length;i++){
        for(int j=0;j<a[i].length;j++){
            x[k++]=a[i][j];
        }
}
    return x;
}
public static void main(String[]args){
    flatten1 f = new flatten1({{2,5,3,7,4,8},{3,4,1,2}});
    for(int i=0; i<f.length;i++){

        System.out.print(f[i]+" ");
    }

}
公共类扁平化{
公共静态int[]1(int[]a){
int c=0;

对于(int i=0;i首先,您不能这样做:

   flatten1 f = new flatten1({{2,5,3,7,4,8},{3,4,1,2}});
Flatt1不是一个类,而是一个方法,不能实例化Flatt1并输入2D int数组。 要使上述内容合法,您需要创建一个名为Flatt1的类,并创建一个构造函数,该构造函数将2D int数组作为参数,我相信这不是您想要做的


展平方法非常有效,请将主要方法更改为以下方法:

public static void main(String[] args){
   int[][] arrayToBeFlattened = {{2,5,3,7,4,8},{3,4,1,2}};
   int[] oneD = flatten1(arrayToBeFlattened);

   for(int i=0; i<oneD.length;i++){
      System.out.print(oneD[i]+" ");
   }
}
publicstaticvoidmain(字符串[]args){
int[]arrayToBeFlattened={{2,5,3,7,4,8},{3,4,1,2};
int[]oneD=flatt1(阵列被平坦化);
对于(int i=0;i请尝试以下方法:

public class flatten {

    public static int[] flatten1(int[][] a) {
        int c = 0;
        for (int i = 0; i < a.length; i++) {
            for (int j = 0; j < a[i].length; j++) {
                c++;
            }
        }

        int[] x = new int[c];
        int k = 0;

        for (int i = 0; i < a.length; i++) {
            for (int j = 0; j < a[i].length; j++) {
                x[k++] = a[i][j];
            }
        }
        return x;
    }

    public static void main(String[] args) {
        int[][] test_arr = { { 1, 2, 3 }, { 4, 5, 6 } };

        int[] f = flatten.flatten1(test_arr);
        for (int i = 0; i < f.length; i++) {

            System.out.print(f[i] + " ");
        }

    }
}
公共类扁平化{
公共静态int[]1(int[]a){
int c=0;
for(int i=0;i
在main方法中,当您打印f[i]时,您没有打印第一个值。因为f是一个数组数组,所以您试图打印第i个数组,而不是第i个元素。请确保您理解这一区别,因为它很重要。打印第i个数组只会给出它的内存地址

要解决此问题,只需将打印语句更改为:

System.out.print(Arrays.toString(f[i])+" ");