Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.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 ArrayPrinter { public static void main(String[] args) { int[] oneD = { 5, 6, 7, 8 }; printArray(oneD); System.out.println(); System.out.println("\n"); } public static void printArray(int[][] arr) {

有人能帮我做这个我需要做的项目吗

public class ArrayPrinter {

public static void main(String[] args) {
    int[] oneD = { 5, 6, 7, 8 };
    printArray(oneD); 
    System.out.println(); 
    System.out.println("\n"); 

}
public static void printArray(int[][] arr) {
     System.out.print("["); 

     int[][] twoD = {{ 2, 4, 6, 8 },
                    {8, 7, 9, 1},
                    {3, 5, 1, 2}};

     printArray(twoD); 
     System.out.println(); //4
     System.out.println("\n"); 


     int rows = 3;
     int columns = 4;
     int i, j;

     for (i=0; i < rows ; i++) {
         for (j=0; j < columns ; j++) {
             System.out.print( aryNumbers[i] [j] + " ");
         }

        System.out   
     }

     System.out.println("]"); 
}
}

public static final void printArray(int[] arr) {
    System.out.print("["); 
    for (int i = 0; i < arr.length; i++) { 
        if (i == arr.length - 1) 
            System.out.print(arr[i]);
        else
            System.out.print(arr[i] + ", "); 
    }
    System.out.println("]"); 
}

}
公共类数组打印机{
公共静态void main(字符串[]args){
int[]oneD={5,6,7,8};
打印阵列(oneD);
System.out.println();
System.out.println(“\n”);
}
公共静态void打印数组(int[]arr){
系统输出打印(“[”);
int[]twoD={{2,4,6,8},
{8, 7, 9, 1},
{3, 5, 1, 2}};
打印阵列(二维);
System.out.println();//4
System.out.println(“\n”);
int行=3;
int列=4;
int i,j;
对于(i=0;i
什么都没用,我不明白为什么。我已经做了6个小时了,我觉得自己好笨。我什么都没有得到。为什么在[][]twoD={{2,4,6,8}, {8, 7, 9, 1}, {3, 5, 1, 2}};
不过帐

看起来您从未调用过
printary(int[]]arr)
方法。在
main
中调用
printary(int[]arr)
,该函数执行其操作,然后返回。如果您不理解为什么它不调用
int[][]
版本,请花一些时间了解Java中的方法重载。

首先,您的程序有一些语法错误,其次,您只调用了“printary(oneD);”在PSVM()方法中,这就是为什么它不被称为twoD。请尝试更正程序并重试。

首先,您应该知道什么是函数重载

Java编程语言支持重载方法,Java 可以区分具有不同方法签名的方法。这 意味着类中的方法可以具有相同的名称(如果它们具有相同的名称) 不同的参数列表

一个类中具有相同名称但参数类型不同或参数数量不同的两个函数会导致函数重载

例如:

class Test{
    public static void main(String[] args){
        f1(2);//this will print Int function on screen
        f1(2.5);//this will print Double function on screen
    }

    public static void f1(int a){
        //do something
        System.out.println("Int function");
    }
    public static void f1(double a){
        //do something else
        System.out.println("Double function");
    }

}
类似地,在代码中,有两个同名函数

printArray(参数)

但在这两个函数中,参数是不同的。一个接收一维阵列,另一个接收二维阵列。所以,如果你想点击printArray(1D),那么只需制作一个1D数组并将其传入参数。但是如果您想点击printArray(2D),那么首先创建一个2D数组,然后将该2D数组传递给printArray函数。然后将调用其他函数

希望你明白你错过了什么

如果你明白问题所在。下面是您的代码,我在其中做了一些修改。但请先明确概念,然后再进行实际编码

public class Test {

    public static void main(String[] args) {
        int[] oneD = { 5, 6, 7, 8 };
        printArray(oneD); 
        System.out.println(); 
        System.out.println("\n"); 

        int[][] twoD = {{ 2, 4, 6, 8 },
                {8, 7, 9, 1},
                {3, 5, 1, 2}};

        printArray(twoD); 


    }
    public static void printArray(int[][] arr) {
        System.out.println("["); 



        int rows = 3;
        int columns = 4;
        int i, j;

        for (i=0; i < rows ; i++) {
            for (j=0; j < columns ; j++) {
                System.out.print( arr[i] [j] + " ");
            }
            System.out.println();
        }

        System.out.println("]"); 
    }


    public static final void printArray(int[] arr) {
        System.out.print("["); 
        for (int i = 0; i < arr.length; i++) { 
            if (i == arr.length - 1) 
                System.out.print(arr[i]);
            else
                System.out.print(arr[i] + ", "); 
        }
        System.out.println("]"); 
    }

}
公共类测试{
公共静态void main(字符串[]args){
int[]oneD={5,6,7,8};
打印阵列(oneD);
System.out.println();
System.out.println(“\n”);
int[]twoD={{2,4,6,8},
{8, 7, 9, 1},
{3, 5, 1, 2}};
打印阵列(二维);
}
公共静态void打印数组(int[]arr){
System.out.println(“[”);
int行=3;
int列=4;
int i,j;
对于(i=0;i
您有一个无限循环
printArray()
在不修改数据的情况下反复调用自身。好的,不是一个无限循环,而是一个无底递归。那么我必须做什么呢?取决于。你想做什么?在这里描述一下。修改你原来的帖子,告诉你想要达到的目的。@quinnyb我会删除你的电子邮件评论。。。如果我有三个数组,最后两个都是public static void printary(int[]]arr)public static void printary(int[]]arr)是一个函数而不是数组,那么会发生什么呢。无法理解您想问什么。抱歉,我指的是3个函数,最后两个具有相同名称的函数尝试使用它并编译代码,然后告诉我发生了什么?[5,6,7,8][2,4,6,8,8,7,9,1,3,5,1,2],线程“main”中的异常java.lang.NullPointerException位于ArrayPrinter.main(ArrayPrinter.java:16)