code: public void insert( int index , int value ) {
  		if( size == data.length ) {
  			int temp[] = new int[ size * 2];
  			System.arraycopy(data,0,temp,0,index);
  			temp[index] = value;
  			System.arraycopy(data,index,temp,index+1,size-index);
  			this.data = temp;
  			size++;
  		} else {
  			size++;
  			for( int i = size-1; i > index; i-- ) {
  				data[i] = data[i-1];
  			}
  			data[index] = value;
  		}
  	}
docs: Inserts the value at the specified index and shifts all the other values down.