You are correct in your assignment:
Keep in mind that
Java array indexes are zero-based, so if you have an array of length 10, you can uses indexes from zero to nine, inclusive. In general: myArray[0] ... to ... myArray[myArray.length-1] are the lower and upper limits.
As for you "ensureCapacity()" method, I didn't compile it, but just looking over it it seems to have all the right stuff. There is an "arrayCopy()" method in the "java.lang.System" class that could be used instead of the "for" loop, but either one would work fine, as long as you understand what's happening.
Good luck!