java-change数组

java-change数组,java,arrays,applet,Java,Arrays,Applet,好吧,假设我有这个数组: public int[][] loadBoard(int map) { if (map == 1) { return new int[][] { {2,2,24,24,24,24,24,1,3,0,0,0,1 }, { 2,2,24,23,23,23,24,1,3,0,0,0,1 }, { 1,1,24,23,23,23,24,1,3,3,3,3,1 }, { 1,1,24,24,23,24,24,1,1,1,1,3,1 }, { 1,1,1,1,

好吧,假设我有这个数组:

public int[][] loadBoard(int map) {

    if (map == 1) {  return new int[][] { 
{2,2,24,24,24,24,24,1,3,0,0,0,1 },  {
2,2,24,23,23,23,24,1,3,0,0,0,1 },  {
1,1,24,23,23,23,24,1,3,3,3,3,1 },  {
1,1,24,24,23,24,24,1,1,1,1,3,1 },  {
1,1,1,1,7,1,1,1,1,1,1,3,1 },  {
6,1,1,1,7,7,7,7,7,1,1,1,1 },  {
6,3,3,1,3,3,3,1,7,7,7,3,1 },  {
6,72,3,3,3,1,1,1,1,7,7,1,1 },  {
3,3,3,3,1,1,1,1,1,1,7,1,1 } };  } }
return board;
我可以称之为这样做:

board = loadBoard(1);
但是。。。假设我想将Map1数组(数组左下角)上的数字72更改为。。。21你能做到吗

board[7][1] = 21;
说明:当处理数组
a[]
时,
a[n]
引用第(n+1)个元素(请记住第一个元素是
a[0]

多维数组只是数组的数组。因此,如果您有一个二维数组
b[][]
,则
b[n]
引用第(n+1)个数组

您的值72位于第8个数组(索引7)的第2个位置(索引1)。因此
board[7][1]
引用该值,并且
board[7][1]=21
为其赋值21

旁白:有时(通常,甚至)您不知道何时编写要使用哪些索引的代码(假设您要对所有映射执行此操作)。此代码将查找所有出现的
72
,并将其替换为
21

int numToReplace = 72;
int replacement = 21;
//loop through each nested array
for ( int i = 0; i < board.length; i++ ) { 
   //loop through each element of the nested array 
   for ( int j = 0; j < board[i].length; j++ ) { 
      if ( board[i][j] == numToReplace ) {
         board[i][j] = replacement;
      }
   }
}
int numToReplace=72;
整数替换=21;
//循环遍历每个嵌套数组
对于(inti=0;i
说明:当处理数组
a[]
时,
a[n]
引用第(n+1)个元素(请记住第一个元素是
a[0]

多维数组只是数组的数组。因此,如果您有一个二维数组
b[][]
,则
b[n]
引用第(n+1)个数组

您的值72位于第8个数组(索引7)的第2个位置(索引1)。因此
board[7][1]
引用该值,并且
board[7][1]=21
为其赋值21

旁白:有时(通常,甚至)您不知道何时编写要使用哪些索引的代码(假设您要对所有映射执行此操作)。此代码将查找所有出现的
72
,并将其替换为
21

int numToReplace = 72;
int replacement = 21;
//loop through each nested array
for ( int i = 0; i < board.length; i++ ) { 
   //loop through each element of the nested array 
   for ( int j = 0; j < board[i].length; j++ ) { 
      if ( board[i][j] == numToReplace ) {
         board[i][j] = replacement;
      }
   }
}
int numToReplace=72;
整数替换=21;
//循环遍历每个嵌套数组
对于(inti=0;i
当您声明一个类似int[][]的数组时,您使用两个索引来标识二维数组中的单个值

当初始化为

int[][] myarray   = {
 { a,b,c,d,... },  // 0
 { a,b,c,d,... },  // 1
 { a,b,c,d,....}   // 2
};
第一个索引选择示例中的一个嵌套数组(0、1或2)。第二个索引然后从上面的嵌套数组a、b、c、d…中选择一个项

索引始终从0开始:myarray[0][0]给出存储在数组0中的值,位置a。myarray[1][3]给出嵌套数组1中的值“d”

在您的示例中,数字72位于第8个数组的第二个位置,使用自然数(从1开始)进行计数。但由于索引从0开始,因此这将成为索引[7][1]。这就是答案

board[7][1] = 72;

当您声明像int[][]这样的数组时,使用两个索引来标识二维数组中的单个值

当初始化为

int[][] myarray   = {
 { a,b,c,d,... },  // 0
 { a,b,c,d,... },  // 1
 { a,b,c,d,....}   // 2
};
第一个索引选择示例中的一个嵌套数组(0、1或2)。第二个索引然后从上面的嵌套数组a、b、c、d…中选择一个项

索引始终从0开始:myarray[0][0]给出存储在数组0中的值,位置a。myarray[1][3]给出嵌套数组1中的值“d”

在您的示例中,数字72位于第8个数组的第二个位置,使用自然数(从1开始)进行计数。但由于索引从0开始,因此这将成为索引[7][1]。这就是答案

board[7][1] = 72;

你能解释一下你是如何为了他得到你的答案的吗?谢谢你-我只是不想你的正确答案被劫持:)@Dan:每个人都“愚蠢”当谈到学习新东西时。如果有一些基本的东西你不知道,那么假设你也不理解为什么我只是发布代码就行了,这是合理的。@SB没有暗示任何关于这个请求的事情。@Mark Peters:有趣的是我已经知道了那个代码。我只是忘记了它。所以它不是学习新东西,而是重新学习获取该信息:P@Dan-我从来没有想过要暗示这样的事情。如果我这么做了,我很抱歉。你能解释一下你是如何为了他得到你的答案的吗?谢谢你-我只是不想让你的正确答案被劫持:)@Dan:每个人在学习新东西时都是“愚蠢的”。如果有一些基本的东西你不知道,那么假设你也不理解为什么我只是发布代码@“某人对那个请求并没有暗示任何东西。”马克·彼得斯:有趣的是我已经知道那个密码了。我只是忘了。因此,它不是学习新的东西,而是保留这些信息P@Dan-根本就不想暗示这样的事。对不起,如果我这样做了。