JAVA关于数组替换的问题,我初学者,想了很久都想不通,请一定帮我解答一下,感激不尽!!!

在数组替换中:比如下面的代码
int arr[] ={1,2,3,4,5,6,7};

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

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

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

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个呢?也就是说我不能写成(arr,4,4,8)的想法来指定替换4,而必须要在指定替换的索引前面加一个前面相邻的索引呢?

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

打印的结果应该是:1,2,3,8,5,6,7 吧
包含开始的索引,不包含结束的索引,所以 Arrays.fill(arr,3,4,8) 只替换 arr[3]为8
索引是从0开始的,所以 是将数组中 数字 4 替换成 8
由于是不含结束的索引,Arrays.fill(arr,4,4,8) 会互相矛盾,包含4又不包含4追问

1.(arr,3,4,8)这里面的3,4都是从下标为0开始计算的吗?
2.不包含结束的索引,具体有什么意义。为什么不能直接省略调取其中的4,我直接指定3这样的替换不行吗?为什么要多一个结束的索引呢。

谢谢了,你可以尽可能详细的给我讲讲吗,我是初学者,实在不好意思,麻烦了。

追答

这里的3和4都是指的数组arr的索引,arr的索引从0开始,即第一个元素索引为0.arr[0]=1,arr[1]=2,arr[2]....索引通常叫做数组的下标

开始和结束索引的意义在于可以替换多个数组元素,比如(arr,1,4,8),就表示将arr数组从索引1开始到索引4(不含)的元素值替换成8,具体就是 1(0),8(1),8(2),8(3),5(4),6(5),7(6),括号中是对应的索引

温馨提示:答案为网友推荐,仅供参考
相似回答