Nit-picky stuff.
private boolean same(final IntKeyIndex them, final int index) { final int k = keys.get(index); int t = them.getIndex(k); if (t != index) { return false; } return true; }
I would think that you would just want to drop the if statement and return the boolean
return t == index;
EDIT:
@Rolfl pointed out that logically these 2 sets of conditions do not check the same thing, so logically they should not be linked in an else if statement, because they have nothing to do with each other. This makes complete sense to me.
This is kind of a nit-picky thing, and I wouldn't bring it up normally because you are like a superhero when it comes to Java, but seriously this isn't going to make much of a difference really, it's more of a preference thing
more nit-picky stuff.
private boolean same(final IntKeyIndex them, final int index) { final int k = keys.get(index); int t = them.getIndex(k); if (t != index) { return false; } return true; }
I would think that you would just want to drop the if statement and return the boolean
return t == index;