In the JDK 1.7 into the ArrayList.java the method ensureCapacity
increments the array capacity using the following expression: int newCapacity = oldCapaci
From the ArrayList javadoc:
The details of the growth policy are not specified beyond the fact that adding an element has constant amortized time cost.
In other words, the books may be accurate for other implementations, but nothing's guaranteed - and the Java 7 source is still compliant with the docs, but shows the books to be overly specific.