VectorsVectors and arraysCreating a VectorAdding elements to a VectorRemoving elements from a VectorAccessing elements of a VectorSearching a Vector ISearching a Vector IIGetting information about a VectorMore about equalsA minor nuisanceFixing the nuisanceConclusionThe EndVectorsVectors and arrays•A Vector is like an array of Objects•Differences between arrays and Vectors:–Arrays have special syntax; Vectors don’t–You can have an array of any type, but a Vector holds Objects–An array is a fixed size, but a Vector expands as you add things to it•This means you don’t need to know the size beforehandCreating a Vector•import java.util.*;•Vector vec1 = new Vector();•Vector vec2 = new Vector(initialSize);•Vector vec3 = new Vector(initialSize, increment);Adding elements to a Vector•boolean add(Object o)–Appends the object o to the end of this Vector–Always returns true•This is for consistency with other, similar classes•void add(int index, Object element)–Inserts the element at position index in this Vector–The index must be greater than or equal to zero and less than or equal to the number of elements in the VectorRemoving elements from a Vector•boolean remove(Object o)–Removes the first occurrence of o from this Vector–Returns true if an element was removed•void remove(int index)–Removes the element at position index from this Vector•void removeAllElements()–Removes all elementsAccessing elements of a Vector•Object elementAt(int index) orObject get(int index)–Returns the component at position index–elementAt is an older method, retained for compatibility with older programs•Object firstElement()–Returns the component at location 0•Object lastElement()–Returns the last componentSearching a Vector I•boolean contains(Object elem)–Tests if elem is a component of this Vector•int indexOf(Object elem)–Returns the index of the first occurrence of elem in this Vector–Returns -1 if elem was not found in this Vector•int indexOf(Object elem, int index)–Returns the index of the first occurrence of elem in this Vector, beginning the search at index–Returns -1 if elem was not found in this VectorSearching a Vector II•int lastIndexOf(Object elem)–Returns the index of the last occurrence of elem in this Vector–Returns -1 if elem was not found in this Vector•int lastIndexOf(Object elem, int index)–Returns the index of the last occurrence of elem in this Vector, searching backward from index–Returns -1 if elem was not found in this Vector•All searching is done using equalsGetting information about a Vector•boolean isEmpty()–Returns true if this Vector has no elements•int size()–Returns the number of elements in this Vector•Object[ ] toArray()–Returns an array containing all the elements of this Vector in the correct orderMore about equals•There are many different notions of equality–Example: two sets are equal if they contain the same elements; order of elements is irrelevant•Java defines boolean equals(Object) in the Object class, but–equals is defined to be the same as ==–It’s often a good idea to override equals for your own objects–The String class (and some others) override equalsA minor nuisance•Suppose you define Vector vec = new Vector(); Rabbit bunny = new Rabbit();•You can do vec.add(bunny);•But you cannot do bunny = vec.elementAt(0);•Instead, you have to do bunny = (Rabbit)vec.elementAt(0);Fixing the nuisance class RabbitVector extends Vector { Rabbit elementAt(int i) { return (Rabbit)super.elementAt(i); }}•Now you can do Vector vec = new RabbitVector(); vec.add(bunny); bunny = vec.elementAt(0);Conclusion•A Vector is like an array of Objects•The advantage of a Vector is that you don’t need to know beforehand how big to make it•The disadvantage of a Vector is that you can’t use the special syntax for arrays•You should never use an array that you hope is “big enough”--use a Vector insteadThe
View Full Document