44public class Vector<T>
implements Iterable<T> {
46 static final int MIN_SIZE = 16;
60 public int size() {
return size_; }
68 return data_!=
null ? data_.length : 0;
93 return data_[check(i)];
98 public void set(T obj,
int i) {
108 if (!(0<=i && i<size_))
109 throw new ArrayIndexOutOfBoundsException(i);
118 @SuppressWarnings(
"unchecked")
121 n=(n>=MIN_SIZE) ? n : MIN_SIZE;
123 T[] a=(T[])
new Object[n];
124 for (
int i=0;i<size_;++i)
126 for (
int i=size_;i<a.length;++i)
145 for (
int i=size_-1;i>=n;--i)
172 for (
int j=n;j>i;--j)
194 for (
int j=i+1;j<size_;++j)
203 for (
int i=0;i<size_;++i)
223 @Override
public T
next() {
return v_.
at(idx_++); }
228 @Override
public void remove() {
229 throw new UnsupportedOperationException();
241 for (
int i=0;i<
size();++i) {
T next()
return current entry and advance
boolean hasNext()
return true unless "advanced" over tail
Implementation of an array-based vector.
void pop_back()
remove last enytry [O(1)]
int capacity()
Get Capacity, i.e., the maximum size the vector can grow without allocating new storage.
Vector()
create empty vector
T back()
get last entry [O(1)]
Iterator iterator()
get forward iterator
void insert(int i, T obj)
Insert new entry obj at position i [O(n)].
void push_back(T obj)
insert new entry obj at the end [O(1) for sufficient capacity]
T at(int i)
get i-th entry [O(1)]
void clear()
remove all entries (capacity remains) [O(1)]
void resize(int n)
Set size of vector.
int size()
get number of entries [O(1)]
void erase(int i)
remove entry at position i [O(n)]
T front()
get first entry [O(1)]
void reserve(int n)
Ensure capacity for n entries.
boolean empty()
Is vector empty? [O(1)].