You use <p> as a paragraph break, rather than a paragraph element. It's usage is like this:
<p>Some text!</p>
<p>A second paragraph.</p>
If you want an HTML tag to use in its place (for Find/Replace convenience) use <br>. However, I'd recommend going through and using <p> properly. It looks nicer than <br>.
See <p> and <br> for more information.
You intermittently use and don't use <code></code>. Use it like you do backticks: Around everything that's code, or would be in context. For example:
In order to support setting the value at index Integer.MAX_VALUE (which would require an array of size Integer.MAX_VALUE + 1),
should probably be
In order to support setting the value at index <code>Integer.MAX_VALUE</code> (which would require an array of <code>Integer.MAX_VALUE + 1</code>),
Same thing applies for every bit of code you embed in the descriptions, even if it's embedded in prose.
In your @annotations, you always start your sentence with a lowercase letter. Remember that it renders as
@param name your text here
renders as
annotationname your text here
It looks much nicer if you use a capital first letter.:
@param name Your text here
name Your text here
Or, to keep ripping off the official Javadocs, put - at the beginning of your text:
@param name - Your text here
name - Your text here
When declared as class-scoped variables (i.e. static or instance fields) Objects default to null when first created, and ints default to 0. You don't need to explicitly state that. Yes, an array is an object. Even an int[].
While your documentation in most places is superb, you need to write up what the fields are. For example, what's modCount? As best as I can tell, it's just a way for IndexSpliterator to check if the IntKeyIndex it's being used with has been modified while it operates.