1: // @author Frank M. Carrano, Timothy M. Henry
2: // @version 5.0
3: public void add(int givenPosition, T newEntry)
4: {
5: checkIntegrity();
6: if ((givenPosition >= 1) && (givenPosition <= numberOfEntries + 1))
7: {
8: if (givenPosition <= numberOfEntries)
9: makeRoom(givenPosition);
10: list[givenPosition] = newEntry;
11: numberOfEntries++;
12: ensureCapacity(); // Ensure enough room for next add
13: }
14: else
15: throw new IndexOutOfBoundsException(
16: "Given position of add's new entry is out of bounds.");
17: } // end add
19: private void makeRoom(int givenPosition)
20: {
21: int newIndex = givenPosition;
22: int lastIndex = numberOfEntries;
23: for (int index = lastIndex; index >= newIndex; index--)
24: list[index + 1] = list[index];
25: } // end makeRoom