JAVA二维数组的一个很简单的问题,我是初学者,我实在想不通,帮我解答一下谢谢了。

int myarr[][] = {{19,1},{48,11}}; //比如我声明一个有值得二维数组

System.out.println(myarr[1][1]); //然后我打印的下标为[1][1],输出的值为什么总是 {{19,1},{48,11}}最后哪一个11呀,{19,1},{48前面这三个数我怎么改,跟我打印下标为[1][1]没有关系,只要我改最后一个11的值改成多少,我打印下[1][1]的值就是多少?

为什么呀,原理?
在帮我解决一个问题哈 谢谢了
在数组替换中:比如下面的代码
int arr[] ={1,2,3,4,5,6,7};

Arrays.fill(arr,3,4,8)

//1代表要指定值填充第一个元素的索引(包括)

//2代表要指定值填充最后一个元素的索引(不包括)

for(int a:arr){
system.out.print(a)
//遍历数组打印
//打印的值为:1,8,3,4,5,6,7
}

问题是:我想了很久为什么替换数组后我指定替换的是4,上面数组当中就替换掉4的那个索引,为什么(arr,3,4,8)这个公式里面必须要在4前面跟一个3啊??如果3改成0,4前面所有的数都替换成8了。总感觉哪里没有想通。

关键是:为什么(arr,3,4,8)这个代码这样相邻的为什么就只替换第4个而,不替换第3个呢?

谢谢了 在帮我解答一下吧。

int myarr[][] = {{19,1},{48,11}};

表示

myarr是一个二维数组

数组0的值是{19,1}

数组1的值是{48,11}

现在访问的是myarr[1][1] 肯定就是访问数组1的值1 所以肯定是11了

每个值都是独立的  ä¸ºä»€ä¹ˆæ”¹å‰ä¸‰ä¸ªä¼šå½±å“åˆ°æœ€åŽçš„那个  ä½ è¦è¿™ä¹ˆè¯´æˆ‘反而觉得很想不通

感觉你应该是基础比较差 没正式学过编程 就开始看代码的类型

还是老老实实的看书 理解了再来看代码吧

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-07-14
myarr[0][0]——19

myarr[0][1]——1
myarr[1][0]——48
myarr[1][1]——11
从0开始算的追问

为什么这个数组的[0][0]是19呀?
为什么这个数组的[0][1]是1呢
为什么这个数组的[1][0]是48呢
为什么这个数组的[1][1]是11呢?

上面的不是只有两个下标吗,表示只有[][] 和[][]吗,我不太懂谢谢了,再帮我解释一下吧。那这个数组声明的时候就是int myarr[][] = new int[2][2]的公式吗?

追答

声明的时候是int myarr[][] = new int[2][2]
这是创建了两个数组,这两个数组又是有两个元素的数组

JAVA二维数组的一个很简单的问题,我是初学者,我实在想不通,帮我解答...
int myarr[][] = {{19,1},{48,11}};表示 myarr是一个二维数组 数组0的值是{19,1} 数组1的值是{48,11} 现在访问的是myarr[1][1] 肯定就是访问数组1的值1 所以肯定是11了 每个值都是独立的 为什么改前三个会影响到最后的那个 你要这么说我反而觉得很想不通 感觉你应该是基础比...

Java二维数组问题
1、数组的定义:Object [][] arr = new Object[4][];数组长度必须明确,方可使用,如:Object[][] arr = new Object[4][4];。2、赋值:arr[0][0] = new String[0]["字符串张三"];数组的方括号中的是数组下标,不是值,如:arr[0][0] = new String[0]["字符串张三"];。3、...

一个JAVA输出二维数组的简单程序看看有什么问题,谢谢
其实解决方法真的非常非常简单……就是将你的一句for(String[] b1:A[i][j])改为for(String[] b1:A)就可以了。以下是改好了的代码(附上了错处的说明):public class ArrayInit { String[][] A = new String[4][4];public void printString(){ for(int i=0;i<=4;i++){ for(in...

...有想通!!我是初学者,请大家一定要我解答一下,实在感激不尽!_百度知 ...
一维数组,一个for循环够了,因为只有一行;二维数组,用2个for循环,是因为对应了行和列的循环;1,2,3 4,5,6 7,8,9 第一个问题:arr[i][j] 这里 i , j对应的就是行和列,i是行,j是列 第一层循环其实就是i不变,即行不变,列变 即arr[0]对应第一行,然后列从0开始加1(...

关于java中二维数组输出的问题
对于你的二维数组,score.length表示行数4,即二维数组由4个一维数组组成。而score[i].length、score[j].length表示第i+1行、第j+1行的列数,由于score是列数等长的二维数组,它们都等于3。score.length与score[i].length和score[j].length,3者表示不同的含义,不可混用(尽管它们的值可能相同)...

java高手:java定义二维数组问题
int a[][] = new int[3][2]; 表示定义一个三行二列的二维数组,但是a[0] = {1,6}; 是对一维数组进行赋值,而a是二维数组无法使用一维数组的赋值方法,所以程序会报错。该代码的正确方法应该是:int a[][] = new int[3][2];a[0][0]=1;a[0][1]=6;...

我在java中定义了一个二维数组,其中一些值是手动输入的,对于剩下的值...
没有你说的直接默认就是无穷大的方法,不过你可以走个曲线同样可以达到你要的目的 首先你要确定这个二维数组有多少行多少列,谨记不可数组越界,然后开始初始化一个由最大值填充的二维数组,然后再动态的改变里面的数值,达到自己的目的。

JAVA问题简单的很,菜鸟送分,在线等
一维数组的定义 type arrayName[];其中类型(type)可以为Java中任意的数据类型,包括简单类型组合类型,数组名arrayName为一个合法的标识符,[]指明该变量是一个数组类型变量。例如:int intArray[];声明了一个整型数组,数组中的每个元素为整型数据。与C、C++不同,Java在数组的定义中并不为数组元素...

java简单问题,答案都书本都给出来了,可是都没懂,求助高手解释一下哈!先...
6.因为S1和S2对应的不是同一对象,对于两个对象之间使用“==”比较的是他们对应的内存地址是否相同,用equals比较才是比较之间的内容是否相同 13 数组必须这样定义,可以定义a[1][],a[][],a[1][1],但是不可以定义a[][1]因为产生数据的时候,会发现二维数组无法找到固定的一维数组作为支撑。至于...

java中定义一个二维数组arr,arr的地址和arr[0]为什么不一样,是怎么开辟...
这两个本来就不一样,不是一个东西,地址肯定不一样。首先,arr是一个Object(对象),所以它会有一个独立的内存地址 arr[0]是一个数组,这个数组也是一个Object(对象),所以它也会有一个独立的内存地址。java跟c一个很大的不同点就是java尽力避免了变量的地址这种东西,所以你不用过于执着 ...

相似回答