从Java中的数组中获取正确的值

时间:2018-04-27 13:44:13

标签: java arrays kotlin

我有一个包含以下值的数组和一个设置为0的变量,该数组在向数组添加字节时会增加:

data = [0, 0, 0]    
position = 0

我在数组中添加一个字节:

data[position++] = 1

现在是:

data = [1, 0, 0]
position = 1

我的问题:数组中的1是1,该字节的位置是 0 ,但我的位置是 1. 如何设置该字节的位置到 1

所以我可以这样得到:

data[position] <- Returns **1** -> data[1]

现在,当我使用data[position]时,它返回0

3 个答案:

答案 0 :(得分:4)

使用data[++position] = 1代替data[position++] = 1

刚刚发生了什么?

如果您使用i ++(后缀),position增加1,但position值将返回到数组索引,如{{1} }。

如果使用++ i(前缀),data[0]增加1,position new 值将返回到数组索引中,如{{ 1}}。

在这种情况下,首先使用前缀 position增加1和1将被分配到数组的第一个元素而不是第0个元素。

答案 1 :(得分:2)

通过使用后缀增量,当在data[position++]中访问时,位置仍为0,并且仅在被访问后才添加+1值。所以你基本上做data[0] = 1。使用++position以便在访问其值之前递增位置。

答案 2 :(得分:1)

要回答您的确切问题,您可以这样做:

data[position - 1]

注释: 但你的问题不明确是真的。当你说'#34;一个设置为0的变量,当增加字节到数组时会增加#34;这意味着当你向数组添加另一个字节时,比如说

data[2] = 0

现在数据== [1,0,1]。但是,职位仍然等于1.谁负责增加position

那么你想在这里发生什么?