java - 改变数组

标签 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,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);

但是……假设我想将 map 1 数组(数组左下角)上的数字 72 更改为数字……21。你能做到吗?

最佳答案

board[7][1] = 21;

说明:在处理数组a[]时,a[n]引用第(n+1)个元素(保持请记住,第一个元素是 a[0]

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

您的值 72 在第 8 个数组(索引 7)的第二个位置(索引 1)。因此 board[7][1] 引用该值,board[7][1] = 21 将值 21 赋给它。

旁白:有时(通常,甚至)您在编写代码时并不知道要使用哪些索引(假设您希望对所有 map 通用)。此代码将找到 所有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;
      }
   }
}

关于java - 改变数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3246539/

相关文章:

java - html 没有出现在 Applet 中

Java ArrayList 将当前项目添加到上一个项目;删除当前项目

java - MySQL 的 PASSWORD() 函数在 Java 中的实现

Javascript 数组未定义......我不确定为什么

javascript - 反向映射 JSON 数据?

java - 组件在添加时删除图像

java - 如何在图像上画一个圆圈?

java - 注释生成的 Java 源可为空性(适用于 Kotlin)

Spring Tool Suite 中的 Java MVC 项目附加文件

javascript - 圆环饼图中数据标签的自定义 CSS 类