Java 8 में array[idx++] += "a" एक बार idx बढ़ाता है और Java 9+ में दो बार क्यों?
सभी को नमस्कार! मुझे Java में array पर compound assignment operator के साथ postfix increment का उपयोग करते समय एक अजीब व्यवहार मिला।
मेरे पास एक सरल कोड है:
```java
public class Test {
public static void main(String[] args) {
String[] array = {"x", "y", "z"};
int idx = 0;
array[idx++] += "a";
System.out.println("idx = " + idx);
System.out.println("array[0] = " + array[0]);
System.out.println("array[1] = " + array[1]);
}
}
```
Java 8 में यह कोड आउटपुट देता है:
```
idx = 1
array[0] = xa
array[1] = y
```
यानी idx एक बार बढ़ता है, और स्ट्रिंग "a" array[0] में जुड़ती है।
लेकिन Java 9 और 10 में मुझे मिलता है:
```
idx = 2
array[0] = x
array[1] = ya
```
यानी idx दो बार बढ़ता है, और "a" array[1] में जुड़ता है।