| JGL - The Generic Collection Library for Java |
All Packages Class Hierarchy This Package Previous Next Index
Class com.objectspace.jgl.Array
java.lang.Object
|
+----com.objectspace.jgl.Array
- public class Array
- extends Object
- implements Sequence
An Array is a sequence that is very similar to a regular array except that it
can expand to accomodate new elements.
An Array is the simplest kind of JGL container. In addition to the common container
functions described earlier in this book, an Array includes functions for accessing
its extremities, appending, inserting, erasing, and adjusting its capacity.
The underlying architecture of Arrays makes them ideal for storing elements whose
order is significant and where fast numeric indexing is important. Inserting elements
anywhere except at the end of an Array is slow, so they should not be used where
this kind of operation is common. If inserting is common, consider using a List or
a Deque instead.
The implementation store elements in a contiguous linear memory space so that
index-based access is very quick. When an Array's originally allocated memory space
is exceeded, its elements are copied into a new memory space that is larger than the
old space and then the old space is deallocated.
If an insertion causes reallocation, all iterators and references are invalidated;
otherwise, only the iterators and references after the insertion point are invalidated.
Inserting a single element into an Array is linear in the distance from the insertion
point to the end of the array. Insertion of multiple elements
into an Array with a single call of the insert member is linear in the sum of the
number of elements plus the distance to the end of the Array. In other words, it is
much faster to insert many elements into the middle of an Array at once than to do the
insertion one at a time.
A remove invalidates all of the iterators and references after the point of the remove.
- See Also:
- Sequence, Array examples
-
Array()
- Construct myself to be an empty Array.
-
Array(Array)
- Construct myself to be a shallow copy of an existing Array.
-
Array(int)
- Construct myself to contain a specified number of null elements.
-
Array(int, Object)
- Construct myself to contain a specified number of elements set to
a particular object.
-
Array(Object[])
- Construct myself to use a specified array as my initial storage.
-
add(Object)
- Add an object after my last element.
-
at(int)
- Return the element at the specified index.
-
back()
- Return my last item.
-
begin()
- Return an iterator positioned at my first item.
-
capacity()
- Return the number of elements that I contain without allocating more
internal storage.
-
checkIndex(int, int)
-
-
checkRange(int, int, int)
-
-
clear()
- Remove all of my elements.
-
clone()
- Return a shallow copy of myself.
-
contains(Object)
- Return true if I contain a particular object.
-
copy(Array)
- Become a shallow copy of an existing Array.
-
copyTo(Object[])
- Copy my elements into the specified array.
-
count(int, int, Object)
- Return the number of objects within a particular range of indices that match a
particular value.
-
count(Object)
- Return the number of objects that match a particular value.
-
elements()
- Return an Enumeration of my components.
-
end()
- Return an iterator positioned immediately after my last item.
-
ensureCapacity(int)
- Pre-allocate enough space to hold a specified number of elements.
-
equals(Array)
- Return true if I contain the same items in the same order as
another Array.
-
equals(Object)
- Return true if I'm equal to another object.
-
finish()
- Return an iterator positioned immediately after my last item.
-
front()
- Return my first item.
-
hashCode()
- Return my hash code for support of hashing containers
-
indexOf(int, int, Object)
- Return the index of the first object within a range of indices that match a
particular object, or -1 if the object is not found.
-
indexOf(Object)
- Return the index of the first object that matches a particular value, or -1
if the object is not found.
-
insert(ArrayIterator, ForwardIterator, ForwardIterator)
- Insert a sequence of objects at a particular location.
-
insert(ArrayIterator, int, Object)
- Insert multiple objects at a particular position.
-
insert(ArrayIterator, Object)
- Insert an object at a particular position and return an iterator
positioned at the new element.
-
insert(int, ForwardIterator, ForwardIterator)
- Insert a sequence of objects at a particular index.
-
insert(int, int, Object)
- Insert multiple objects at a particular index.
-
insert(int, Object)
- Insert an object at a particular index.
-
isEmpty()
- Return true if I contain no entries.
-
maxSize()
- Return the maximum number of entries that I can contain.
-
popBack()
- Remove and return my last element.
-
popFront()
- Remove and return my first element.
-
pushBack(Object)
- Add an object after my last element.
-
pushFront(Object)
- Insert an object in front of my first element.
-
put(int, Object)
- Set the element at the specified index to a particular object.
-
remove(Enumeration)
- Remove the element at a particular position.
-
remove(Enumeration, Enumeration)
- Remove the elements in the specified range.
-
remove(int)
- Remove the element at a particular index.
-
remove(int, int)
- Remove the elements within a range of indices.
-
remove(int, int, Object)
- Remove all elements within a range of indices that match a particular object
and return the number of objects that were removed.
-
remove(Object)
- Remove all elements that match a particular object and return the number of
objects that were removed.
-
remove(Object, int)
- Remove at most a given number of elements that match a particular
object and return the number of
objects that were removed.
-
replace(int, int, Object, Object)
- Replace all elements within a range of indices that match a particular object
with a new value and return the number of objects that were replaced.
-
replace(Object, Object)
- Replace all elements that match a particular object with a new value and return
the number of objects that were replaced.
-
setSize(int)
- Sets the size of the Array.
-
size()
- Return the number of entries that I contain.
-
start()
- Return an iterator positioned at my first item.
-
swap(Array)
- Swap my contents with another Array.
-
toString()
- Return a string that describes me.
-
trimToSize()
- If my storage space is currently larger than my total number of elements,
reallocate the elements into a storage space that is exactly the right size.
Array
public Array()
- Construct myself to be an empty Array.
Array
public Array(int size)
- Construct myself to contain a specified number of null elements.
- Parameters:
- size - The number of elements to contain.
- Throws: IllegalArgumentException
- If size is negative.
Array
public Array(int size,
Object object)
- Construct myself to contain a specified number of elements set to
a particular object.
- Parameters:
- size - The number of elements to contain.
- object - The initial value of each element.
- Throws: IllegalArgumentException
- If size is negative.
Array
public Array(Object array[])
- Construct myself to use a specified array as my initial storage.
- Parameters:
- The - array to use as initial storage.
Array
public Array(Array array)
- Construct myself to be a shallow copy of an existing Array.
- Parameters:
- array - The Array to copy.
clone
public synchronized Object clone()
- Return a shallow copy of myself.
- Overrides:
- clone in class Object
equals
public boolean equals(Object object)
- Return true if I'm equal to another object.
- Parameters:
- object - The object to compare myself against.
- Overrides:
- equals in class Object
equals
public synchronized boolean equals(Array array)
- Return true if I contain the same items in the same order as
another Array. Use equals() to compare the individual elements.
- Parameters:
- array - The Array to compare myself against.
hashCode
public synchronized int hashCode()
- Return my hash code for support of hashing containers
- Overrides:
- hashCode in class Object
toString
public synchronized String toString()
- Return a string that describes me.
- Overrides:
- toString in class Object
copy
public synchronized void copy(Array array)
- Become a shallow copy of an existing Array.
- Parameters:
- array - The Array that I shall become a shallow copy of.
copyTo
public synchronized void copyTo(Object array[])
- Copy my elements into the specified array.
The number of items that are copied is equal to the smaller of my
length and the size of the specified array.
- Parameters:
- array - The array that I shall copy my elements into.
isEmpty
public boolean isEmpty()
- Return true if I contain no entries.
size
public int size()
- Return the number of entries that I contain.
maxSize
public int maxSize()
- Return the maximum number of entries that I can contain.
capacity
public int capacity()
- Return the number of elements that I contain without allocating more
internal storage.
back
public synchronized Object back()
- Return my last item.
- Throws: InvalidOperationException
- If the Array is empty.
front
public synchronized Object front()
- Return my first item.
- Throws: InvalidOperationException
- If the Array is empty.
at
public synchronized Object at(int index)
- Return the element at the specified index.
- Parameters:
- index - The index.
- Throws: IndexOutOfBoundsException
- If the index is invalid.
put
public synchronized void put(int index,
Object object)
- Set the element at the specified index to a particular object.
- Parameters:
- index - The index.
- object - The object.
- Throws: IndexOutOfBoundsException
- If the index is invalid.
clear
public synchronized void clear()
- Remove all of my elements.
remove
public Object remove(Enumeration pos)
- Remove the element at a particular position.
- Parameters:
- pos - An enumeration positioned at the element to remove.
- Throws: IllegalArgumentException
- is the Enumeration isn't an
ArrayIterator for this Array object.
remove
public synchronized Object remove(int index)
- Remove the element at a particular index.
- Parameters:
- index - The index of the element to remove.
- Returns:
- The object removed.
- Throws: IndexOutOfBoundsException
- If the index is invalid.
remove
public int remove(Enumeration first,
Enumeration last)
- Remove the elements in the specified range.
- Parameters:
- first - An Enumeration positioned at the first element to remove.
- last - An Enumeration positioned immediately after the last element to remove.
- Returns:
- The number of elements removed.
- Throws: IllegalArgumentException
- is the Enumeration isn't an
ArrayIterator for this Array object.
remove
public synchronized int remove(int first,
int last)
- Remove the elements within a range of indices.
- Parameters:
- first - The index of the first element to remove.
- last - The index of the last element to remove.
- Returns:
- The number of elements removed.
- Throws: IndexOutOfBoundsException
- If either index is invalid.
popBack
public synchronized Object popBack()
- Remove and return my last element.
- Throws: InvalidOperationException
- If the Array is empty.
add
public synchronized Object add(Object object)
- Add an object after my last element. Returns null.
This function is a synonym for pushBack().
- Parameters:
- object - The object to add.
pushBack
public void pushBack(Object object)
- Add an object after my last element.
- Parameters:
- The - object to add.
insert
public ArrayIterator insert(ArrayIterator pos,
Object object)
- Insert an object at a particular position and return an iterator
positioned at the new element.
- Parameters:
- pos - An iterator positioned at the element that the object will be inserted immediately before.
- object - The object to insert.
insert
public synchronized void insert(int index,
Object object)
- Insert an object at a particular index.
- Parameters:
- index - The index of the element that the object will be inserted immediately before.
- object - The object to insert.
- Throws: IndexOutOfBoundsException
- If the index is invalid.
insert
public void insert(ArrayIterator pos,
int n,
Object object)
- Insert multiple objects at a particular position.
- Parameters:
- pos - An iterator positioned at the element that the objects will be inserted immediately before.
- n - The number of objects to insert.
- object - The object to insert.
insert
public synchronized void insert(int index,
int n,
Object object)
- Insert multiple objects at a particular index.
- Parameters:
- index - The index of the element that the objects will be inserted immediately before.
- object - The object to insert.
- Throws: IndexOutOfBoundsException
- If the index is invalid.
- Throws: IllegalArgumentException
- If the number of objects is negative.
insert
public void insert(ArrayIterator pos,
ForwardIterator first,
ForwardIterator last)
- Insert a sequence of objects at a particular location.
- Parameters:
- pos - The location of the element that the objects will be inserted immediately before.
- first - An iterator positioned at the first element to insert.
- last - An iterator positioned immediately after the last element to insert.
insert
public synchronized void insert(int index,
ForwardIterator first,
ForwardIterator last)
- Insert a sequence of objects at a particular index.
- Parameters:
- index - The index of the element that the objects will be inserted immediately before.
- first - An iterator positioned at the first element to insert.
- last - An iterator positioned immediately after the last element to insert.
swap
public synchronized void swap(Array array)
- Swap my contents with another Array.
- Parameters:
- array - The Array that I will swap my contents with.
elements
public synchronized Enumeration elements()
- Return an Enumeration of my components.
start
public ForwardIterator start()
- Return an iterator positioned at my first item.
finish
public ForwardIterator finish()
- Return an iterator positioned immediately after my last item.
begin
public synchronized ArrayIterator begin()
- Return an iterator positioned at my first item.
end
public synchronized ArrayIterator end()
- Return an iterator positioned immediately after my last item.
trimToSize
public synchronized void trimToSize()
- If my storage space is currently larger than my total number of elements,
reallocate the elements into a storage space that is exactly the right size.
ensureCapacity
public synchronized void ensureCapacity(int n)
- Pre-allocate enough space to hold a specified number of elements.
This operation does not change the value returned by size().
- Parameters:
- n - The amount of space to pre-allocate.
- Throws: IllegalArgumentException
- If the specified size is negative.
popFront
public synchronized Object popFront()
- Remove and return my first element.
- Throws: InvalidOperationException
- If the Array is empty.
pushFront
public void pushFront(Object object)
- Insert an object in front of my first element.
- Parameters:
- object - The object to insert.
remove
public int remove(Object object)
- Remove all elements that match a particular object and return the number of
objects that were removed.
- Parameters:
- object - The object to remove.
remove
public synchronized int remove(Object object,
int count)
- Remove at most a given number of elements that match a particular
object and return the number of
objects that were removed.
- Parameters:
- object - The object to remove.
- count - The maximum number of objects to remove.
remove
public synchronized int remove(int first,
int last,
Object object)
- Remove all elements within a range of indices that match a particular object
and return the number of objects that were removed.
- Parameters:
- first - The index of the first object to consider.
- last - The index of the last object to consider.
- object - The object to remove.
- Throws: IndexOutOfBoundsException
- If either index is invalid.
replace
public synchronized int replace(Object oldValue,
Object newValue)
- Replace all elements that match a particular object with a new value and return
the number of objects that were replaced.
- Parameters:
- oldValue - The object to be replaced.
- newValue - The value to substitute.
replace
public synchronized int replace(int first,
int last,
Object oldValue,
Object newValue)
- Replace all elements within a range of indices that match a particular object
with a new value and return the number of objects that were replaced.
- Parameters:
- first - The index of the first object to be considered.
- last - The index of the last object to be considered.
- oldValue - The object to be replaced.
- newValue - The value to substitute.
- Throws: IndexOutOfBoundsException
- If either index is invalid.
count
public int count(Object object)
- Return the number of objects that match a particular value.
- Parameters:
- object - The object to count.
count
public synchronized int count(int first,
int last,
Object object)
- Return the number of objects within a particular range of indices that match a
particular value.
- Parameters:
- first - The index of the first object to consider.
- last - The index of the last object to consider.
- Throws: IndexOutOfBoundsException
- If either index is invalid.
indexOf
public int indexOf(Object object)
- Return the index of the first object that matches a particular value, or -1
if the object is not found.
- Parameters:
- object - The object to find.
indexOf
public synchronized int indexOf(int first,
int last,
Object object)
- Return the index of the first object within a range of indices that match a
particular object, or -1 if the object is not found.
- Parameters:
- first - The index of the first object to consider.
- last - The index of the last object to consider.
- object - The object to find.
- Throws: IndexOutOfBoundsException
- If either index is invalid.
setSize
public synchronized void setSize(int newSize)
- Sets the size of the Array. if the size shrinks, the extra elements (at
the end of the array) are lost; if the size increases, the new elements
are set to null.
- Parameters:
- newSize - The new size of the Array.
contains
public boolean contains(Object object)
- Return true if I contain a particular object.
- Parameters:
- object - The object in question.
checkIndex
protected static final void checkIndex(int i,
int size)
checkRange
protected static final void checkRange(int lo,
int hi,
int size)
All Packages Class Hierarchy This Package Previous Next Index