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. For efficiency, memory is typically allocated in units of the machine's page size.

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. The amortized complexity over the lifetime of an Array of inserting a single element at its end is constant. 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, ArrayExamples

Constructor Index

 o Array()
Construct myself to be an empty Array.
 o Array(Array)
Construct myself to be a shallow copy of an existing Array.
 o Array(int)
Construct myself to contain a specified number of null elements.
 o Array(int, Object)
Construct myself to contain a specified number of elements set to a particular object.
 o Array(Object[])
Construct myself to use a specified array as my initial storage.

Method Index

 o add(Object)
Add an object after my last element.
 o at(int)
Return the element at the specified index.
 o back()
Return my last item.
 o begin()
Return an iterator positioned at my first item.
 o capacity()
Return the number of elements that I contain without allocating more internal storage.
 o clear()
Remove all of my elements.
 o clone()
Return a shallow copy of myself.
 o contains(Object)
Return true if I contain a particular object.
 o copy(Array)
Become a shallow copy of an existing Array.
 o copyTo(Object[])
Copy my elements into the specified array.
 o count(int, int, Object)
Return the number of objects within a particular range of indices that match a particular value.
 o count(Object)
Return the number of objects that match a particular value.
 o elements()
Return an Enumeration of my components.
 o end()
Return an iterator positioned immediately after my last item.
 o ensureCapacity(int)
Pre-allocate enough space to hold a specified number of elements.
 o equals(Array)
Return true if I contain the same items in the same order as another Array.
 o equals(Object)
Return true if I'm equal to another object.
 o finish()
Return an iterator positioned immediately after my last item.
 o front()
Return my first item.
 o hashCode()
Return my hash code for support of hashing containers
 o 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.
 o indexOf(Object)
Return the index of the first object that matches a particular value, or -1 if the object is not found.
 o insert(ArrayIterator, ForwardIterator, ForwardIterator)
Insert a sequence of objects at a particular location.
 o insert(ArrayIterator, int, Object)
Insert multiple objects at a particular position.
 o insert(ArrayIterator, Object)
Insert an object at a particular position and return an iterator positioned at the new element.
 o insert(int, ForwardIterator, ForwardIterator)
Insert a sequence of objects at a particular index.
 o insert(int, int, Object)
Insert multiple objects at a particular index.
 o insert(int, Object)
Insert an object at a particular index.
 o isEmpty()
Return true if I contain no entries.
 o maxSize()
Return the maximum number of entries that I can contain.
 o popBack()
Remove and return my last element.
 o popFront()
Remove and return my first element.
 o pushBack(Object)
Add an object after my last element.
 o pushFront(Object)
Insert an object in front of my first element.
 o put(int, Object)
Set the element at the specified index to a particular object.
 o remove(Enumeration)
Remove the element at a particular position.
 o remove(Enumeration, Enumeration)
Remove the elements in the specified range.
 o remove(int)
Remove the element at a particular index.
 o remove(int, int)
Remove the elements within a range of indices.
 o 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.
 o remove(Object)
Remove all elements that match a particular object and return the number of objects that were removed.
 o 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.
 o 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.
 o replace(Object, Object)
Replace all elements that match a particular object with a new value and return the number of objects that were replaced.
 o setSize(int)
Sets the size of the Array.
 o size()
Return the number of entries that I contain.
 o start()
Return an iterator positioned at my first item.
 o swap(Array)
Swap my contents with another Array.
 o toString()
Return a string that describes me.
 o 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.

Constructors

 o Array
 public Array()
Construct myself to be an empty Array.

 o 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.
 o 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.
 o Array
 public Array(Object array[])
Construct myself to use a specified array as my initial storage.

Parameters:
The - array to use as initial storage.
 o Array
 public Array(Array array)
Construct myself to be a shallow copy of an existing Array.

Parameters:
array - The Array to copy.

Methods

 o clone
 public synchronized Object clone()
Return a shallow copy of myself.

Overrides:
clone in class Object
 o 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
 o 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.
 o hashCode
 public synchronized int hashCode()
Return my hash code for support of hashing containers

Overrides:
hashCode in class Object
 o toString
 public synchronized String toString()
Return a string that describes me.

Overrides:
toString in class Object
 o 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.
 o 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.
 o isEmpty
 public boolean isEmpty()
Return true if I contain no entries.

 o size
 public int size()
Return the number of entries that I contain.

 o maxSize
 public int maxSize()
Return the maximum number of entries that I can contain.

 o capacity
 public int capacity()
Return the number of elements that I contain without allocating more internal storage.

 o back
 public synchronized Object back()
Return my last item.

Throws: InvalidOperationException
If the Array is empty.
 o front
 public synchronized Object front()
Return my first item.

Throws: InvalidOperationException
If the Array is empty.
 o 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.
 o 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.
 o clear
 public synchronized void clear()
Remove all of my elements.

 o 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.
 o 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.
 o 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.
 o 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.
 o popBack
 public synchronized Object popBack()
Remove and return my last element.

Throws: InvalidOperationException
If the Array is empty.
 o 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.
 o pushBack
 public void pushBack(Object object)
Add an object after my last element.

Parameters:
The - object to add.
 o 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.
 o 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.
 o 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.
 o 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.
 o 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.
 o 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.
 o swap
 public synchronized void swap(Array array)
Swap my contents with another Array.

Parameters:
array - The Array that I will swap my contents with.
 o elements
 public synchronized Enumeration elements()
Return an Enumeration of my components.

 o start
 public ForwardIterator start()
Return an iterator positioned at my first item.

 o finish
 public ForwardIterator finish()
Return an iterator positioned immediately after my last item.

 o begin
 public synchronized ArrayIterator begin()
Return an iterator positioned at my first item.

 o end
 public synchronized ArrayIterator end()
Return an iterator positioned immediately after my last item.

 o 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.

 o 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.
 o popFront
 public synchronized Object popFront()
Remove and return my first element.

Throws: InvalidOperationException
If the Array is empty.
 o pushFront
 public void pushFront(Object object)
Insert an object in front of my first element.

Parameters:
object - The object to insert.
 o 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.
 o 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.
 o 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.
 o 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.
 o 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.
 o count
 public int count(Object object)
Return the number of objects that match a particular value.

Parameters:
object - The object to count.
 o 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.
 o 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.
 o 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.
 o 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.
 o contains
 public boolean contains(Object object)
Return true if I contain a particular object.

Parameters:
object - The object in question.

All Packages  Class Hierarchy  This Package  Previous  Next  Index