Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.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_Arrayobject_Type 2 Dimension - Fatal编程技术网

Java 使用二维对象数组

Java 使用二维对象数组,java,arrays,arrayobject,type-2-dimension,Java,Arrays,Arrayobject,Type 2 Dimension,这是我的二维数组: String[][] theMaze = new String[row][column]; 如何在这种方法中使用它 public void ruteToX(String[][] theMaze){ // call theMaze and process in this method } 传入数组时,在前面的方法中(在“ruteToX”之前运行的任何方法)调用该方法,并仅使用变量名传入数组 public void previousMethod(){ rute

这是我的二维数组:

String[][] theMaze = new String[row][column];
如何在这种方法中使用它

public void ruteToX(String[][] theMaze){
    // call theMaze and process in this method
}

传入数组时,在前面的方法中(在“ruteToX”之前运行的任何方法)调用该方法,并仅使用变量名传入数组

 public void previousMethod(){
   ruteToX(theMaze);
}    

public void ruteToX(String[][] theMaze){
    // call theMaze and process in this method
}
编辑: 此外,在该方法中,可以按原样使用数组,也可以创建与原始数组相等的新数组

public void ruteToX(String[][] theMaze){
        String[][] secondMaze = theMaze; 
    }

假设我正确理解了你的问题

我将向您展示一个将数组传递给方法
ruteToX(…)
的示例

它是如何通过的


当你传递一个数组时,它在内存中的
指针或引用的值将被传递,这意味着如果你在方法中对参数数组进行任何更改,实际数组也将面临相同的更改(因为它们是相同的引用)。

里面应该有什么?你打算把数组传递给那个方法吗?是的,马修先生。这是一个在main中填充了值的数组。而不是如何调用已经填充在方法ruteToX中的数组?看看我的示例,检查我是如何通过数组的。我不同意
创建一个与原始数组相等的新数组。
@MathewsMathai同意在大量示例中这不是一个好的决定,但我想提供不止一个选项。这与决定字符串[][]secondMaze=theMaze;`不会创建新数组。您创建的新数组对象具有相同的引用,因为您使用的是
=
。因此,如果您更改为
secondMaze
,则原始数组也将面临相同的更改。您可以使用
Arrays.copyOf()
theMaze.clone()
创建与原始数组具有相同值的新数组。
public class Example
{

String[][] theMaze = new String[5][5];
public void ruteToX(String[][] theMaze)
{ 
//call theMaze and process in this method 
}

public static void main(....)
{
   Example ob=new Example();
   ob.ruteToX(ob.theMaze);
   //passed the value of reference or the pointer to the function ruteToX(...)
}
}