Java 什么';这是b[a[i]-1]和#x2B+;?

Java 什么';这是b[a[i]-1]和#x2B+;?,java,Java,我刚找到一段我不懂的代码 b[a[i] - 1]++; 这就是背景 int firstDuplicate(int[] a) { int[] b = new int[a.length]; for (int i = 0; i < a.length; i++) { b[a[i] - 1]++; if (b[a[i] - 1] > 1) { return

我刚找到一段我不懂的代码

b[a[i] - 1]++;
这就是背景

int firstDuplicate(int[] a) {
        int[] b = new int[a.length];
        for (int i = 0; i < a.length; i++) {
            b[a[i] - 1]++;            
            if (b[a[i] - 1] > 1) {
                return a[i];
            }
        }
        return -1;
    }

有人能给我解释一下吗?

a[]
是一个整数数组

b[a[i]
表示索引
a[i]
处的数组中的
b

e、 g

在这里,
b[a[0]
将为您提供
20
,因为
a[0]
返回
1
b[1]
20

在你的代码中,它是
b[a[i]-1]++
,相当于
b[a[i]-1]=b[a[i]-1]+1

从my中提取,例如,如果
i=0

b[a[0]-1]
将为您提供
10
作为输出

而且
b[a[0]-1]++
b[0]
处的值修改为
11
数组“a”必须包含不小于1且不大于“a.length”的正整数

这段代码创建了一个数组“b”,以跟踪每个整数的显示数量

例如,b[0]表示1的数量,b[1]表示2的数量,依此类推


通过执行b[…]++可以增加该位置的计数。

b[a[i]-1]+
表示索引
a[i]处的
b
数组-1
现在是
+=1
它只是一个由表达式索引的数组,而不是一个你可能已经习惯看到的文字或变量。在
i
处,将
b
的元素增加到
a
的元素减去1。你明白这个函数想要实现什么吗?我想我明白了,但如果你能解释给我听,那就最好了。谢谢你的解释,我想我明白了。
int test[] = {2, 3, 3, 1, 5, 2};
a[] = {1, 2, 3} & b[] = {10, 20, 30}