equal
deleted
inserted
replaced
248 E top() const { |
248 E top() const { |
249 assert(_len > 0, "empty list"); |
249 assert(_len > 0, "empty list"); |
250 return _data[_len-1]; |
250 return _data[_len-1]; |
251 } |
251 } |
252 |
252 |
|
253 E last() const { |
|
254 return top(); |
|
255 } |
|
256 |
253 GrowableArrayIterator<E> begin() const { |
257 GrowableArrayIterator<E> begin() const { |
254 return GrowableArrayIterator<E>(this, 0); |
258 return GrowableArrayIterator<E>(this, 0); |
255 } |
259 } |
256 |
260 |
257 GrowableArrayIterator<E> end() const { |
261 GrowableArrayIterator<E> end() const { |
359 for (int j = _len - 1; j >= idx; j--) { |
363 for (int j = _len - 1; j >= idx; j--) { |
360 _data[j + 1] = _data[j]; |
364 _data[j + 1] = _data[j]; |
361 } |
365 } |
362 _len++; |
366 _len++; |
363 _data[idx] = elem; |
367 _data[idx] = elem; |
|
368 } |
|
369 |
|
370 void insert_before(const int idx, const GrowableArray<E>* array) { |
|
371 assert(0 <= idx && idx <= _len, "illegal index"); |
|
372 check_nesting(); |
|
373 int array_len = array->length(); |
|
374 int new_len = _len + array_len; |
|
375 if (new_len >= _max) grow(new_len); |
|
376 |
|
377 for (int j = _len - 1; j >= idx; j--) { |
|
378 _data[j + array_len] = _data[j]; |
|
379 } |
|
380 |
|
381 for (int j = 0; j < array_len; j++) { |
|
382 _data[idx + j] = array->_data[j]; |
|
383 } |
|
384 |
|
385 _len += array_len; |
364 } |
386 } |
365 |
387 |
366 void appendAll(const GrowableArray<E>* l) { |
388 void appendAll(const GrowableArray<E>* l) { |
367 for (int i = 0; i < l->_len; i++) { |
389 for (int i = 0; i < l->_len; i++) { |
368 raw_at_put_grow(_len, l->_data[i], E()); |
390 raw_at_put_grow(_len, l->_data[i], E()); |