If you think brevity means clarity, try reading some old Fortran code with comments stripped out and single-letter variable names like i, j, k, b, g, h, m, p, q, etc. (I say Fortran because in that era, such variable names were much more in vogue to save a couple of bytes here and there - but really, this can be done in any language).
Even simple algorithms (like finding the center of the circle through three given points) become puzzles. But sure, they are brief.
[1]https://signalvnoise.com/posts/3250-clarity-over-brevity-in-...
In this case, though, the OP makes a strong point that constructs like data[index++] = value; aren't idiomatic to Java - even the spec advises against this.
And in any case, side effects in assignments can be a tricky thing to understand. Sometimes they are necessary, as in
status = perform_computation_on_data(some_mutable_data);
But in the example discussed is not in this vein. I'd say it's not pretty for the same reason as cramming two statements on one line: data[i]=value; i++;
is not pretty: it's trying to do two things with one line, which kind of defeats the point of breaking up code into lines.So I don't disagree with you - but there's a happy medium between Fizz Buzz Enterprise and Code Golf - style code :)