Re: array operation
 
NickPick wrote:
How can i [sic] delete an element from an array and have the size of the
array adjusted accordingly? If I have an array of 10 elements and
delete [5] I want all elements above [5] to move down by one. Is this
possible?
markspace wrote:
Yes, but it's expensive.  That is, it takes a lot of computer processing 
time to move those elements down by one, comparatively speak.
Consider using a List<> instead, like ArrayList or LinkedList.  Both of 
these provide the behavior you want, and they can be swapped out for 
each other depending on the exact operations you want to be fast.
Since ArrayList is backed by an array, all it's doing is hiding the exact same 
operations as doing it by hand, isn't it?
Also, look at HashSet and HashMap, both of which offer faster removal 
and faster access, on average, then List or arrays.
<http://java.sun.com/docs/books/tutorial/collections/implementations/index.html> 
HashSet and HashMap, or more generally, Set and Map have very different 
behaviors from arrays or Lists.  A Set cannot contain more than one element 
that compare equal but a List can.  A List element can be accessed by its 
integer index, but a Set element cannot be.  A Map contains entries in pairs, 
a key and value for each entry, but other types of collections just contain 
single-valued elements.  There are so many more delightful collection classes 
to choose from, too.
In any event, the referenced link and the Javadocs for the different 
Collections classes contain information about their characteristics and their 
expected or average performance, e.g., HashSet has approximately constant-time 
access for insertion and retrieval.
-- 
Lew