Normally I don't call mine an "ungolfed" version to start with. I say "here it is with line breaks" just to avoid this sort of thing. If my code isn't legible like that, then it needs a short explanation, not variable names and braces.
Especially with Java, the golfed code is sometimes still a large amount of characters on a single line. That sucks mainly because scrolling horizontally is just horrible. With a few line breaks, it makes it much easier to follow, even without unrolling the loops, adding braces, changing variable names, etc.
If you have a particularly abusive loop (I assume you mean a bunch of statements crammed into the last section), you can just add a line break for each statement:
It's not the prettiest, and I only recommend that if it really looks bad on one line (adding horizontal scroll, for instance).
Besides just line breaks, it should also be indented properly. I don't care what conventions you follow, as long as it's consistent and obvious what block goes where. The braces in particular become basically obsolete at that point, and anyone who's seen a few golfed answers should be able to see the structure immediately.
This also has the advantage of making it immensely easier to get an "ungolfed" version that corresponds exactly to the golfed one. All you have to do is edit in/out a few line breaks. There are online minifiers that can take care of that for you for several languages, and options in some IDEs to add them back in. That's particularly useful if you have golfed 2-3 characters out several times. Going back through and changing variable names in both versions you posted and making sure they're both "right" takes a bit more.