Java 我需要将两个2d数组设置为彼此相等
我试图获取一个2D数组,我在一个方法中返回该数组,并将其调用到另一个方法中,然后将第二个2D数组的值设置为第一个数组的值 这是第一种方法:Java 我需要将两个2d数组设置为彼此相等,java,arrays,multidimensional-array,return-value,Java,Arrays,Multidimensional Array,Return Value,我试图获取一个2D数组,我在一个方法中返回该数组,并将其调用到另一个方法中,然后将第二个2D数组的值设置为第一个数组的值 这是第一种方法: int xx = 23; int yy = 9; move(xx,yy, myArray); myNewArray = myArray; first = false; 第二点: public static int[][] move(int x, int y, int[][] myNewArray) { Scanner input = n
int xx = 23;
int yy = 9;
move(xx,yy, myArray);
myNewArray = myArray;
first = false;
第二点:
public static int[][] move(int x, int y, int[][] myNewArray)
{
Scanner input = new Scanner(System.in);
String direction = input.next();
boolean moving = true;
while(moving == true)
{
if(direction.indexOf("up") >= 0)
{
myNewArray[x][y] = 0;
myNewArray[x-1][y] = 5;
moving = false;
return myNewArray;
}
}
}
基本上,我尝试将一个2D数组制作成一张地图,在地图中,通过将角色移动到的位置的值更改为5,将角色离开的位置的值更改为0,可以在整个地图中移动角色(“5”)
我试图在第二个方法中返回一个数组,然后用它替换原始数组。如果您想要内容的实际副本,请使用Arrays.copyOf()
:
什么部分不清楚
复制指定的数组,截断或填充空值(如果
(必要)因此副本具有指定的长度。对于所有
如果在原始数组和副本中都有效,则这两个数组将
包含相同的值。对于副本中有效的任何索引
但不是原件,副本将包含null。这些指数将
当且仅当指定的长度大于
原始数组。结果数组的类与
原始数组
如果您只想对传入的引用创建另一个引用,请执行以下操作:
但这几乎没有实际用途我认为这里的问题是,当您执行
move(x,y,array)
时,您没有将返回的结果保存到另一个变量中。因为我认为在Java中数组是按值传递的,所以这个方法最终什么也不做
试试这个:int[]anotherArray=move(x,y,myArray)
这是一个不相关的问题,但您必须小心使用此函数,因为如果xx==0,它将返回
ArrayOutOfBounds
或NullPointer异常
,这是什么myNewArray
?什么是xx
?什么是yy?什么是myArray?这些数组的值是多少?对不起,我是个初学者。谢谢你的帮助。这是一个诚实的编码能力的失误(或缺乏)。对于你的问题,我需要将两个2d数组设置为彼此相等,只需制作一个临时数组并将其初始化为Array1
,然后设置Array1=Array2
,然后设置Array2=tempArray
;
newArray = oldArray;