0% found this document useful (0 votes)
102 views14 pages

Vectors

Vectors are like dynamic arrays that can expand as elements are added. They store objects and differ from arrays in that vectors don't require specifying a size beforehand and can dynamically grow. Vectors support adding, removing, and accessing elements similarly to arrays but also allow searching by element and getting information about the size. Equality is determined by the equals method but some classes like String override this method.

Uploaded by

mukesh427
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
102 views14 pages

Vectors

Vectors are like dynamic arrays that can expand as elements are added. They store objects and differ from arrays in that vectors don't require specifying a size beforehand and can dynamically grow. Vectors support adding, removing, and accessing elements similarly to arrays but also allow searching by element and getting information about the size. Equality is determined by the equals method but some classes like String override this method.

Uploaded by

mukesh427
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 14

Vectors

Vectors and arrays


A Vector is like an array of Objects Differences between arrays and Vectors:
Arrays have special syntax; Vectors dont 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 dont need to know the size beforehand

Creating 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 Vector

Removing 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 elements

Accessing elements of a Vector


Object elementAt(int index) or Object 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 component

Searching 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 Vector

Searching 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 equals

Getting 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 order

More 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 == Its often a good idea to override equals for your own objects The String class (and some others) override equals

A 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 dont need to know beforehand how big to make it The disadvantage of a Vector is that you cant use the special syntax for arrays

You should never use an array that you hope is big enough--use a Vector instead

The End

You might also like