|
Java Vector
public class Vector<E>
extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, Serializable
The Vector class implements a growable array of objects where the size of the vector can grow or shrink as needed dynamically.
Like an array, it contains components that can be accessed using an integer index.
An application can increase the capacity of a vector before inserting a large number of components; this reduces the amount of incremental reallocation.
Below is a Vector Example showing how collections are manipulated using a Vector
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Enumeration;
import java.util.NoSuchElementException;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class VectorDemo extends JFrame {
private JLabel jlbString = new JLabel("Enter a string");
public VectorDemo() {
super("Vector class demo");
// Made final as it can be accessed by inner classes
final JLabel jlbStatus = new JLabel();
Container contentPane = getContentPane();
final Vector vector = new Vector(1);
contentPane.setLayout(new FlowLayout());
contentPane.add(jlbString);
final JTextField jtfInput = new JTextField(10);
contentPane.add(jtfInput);
JButton jbnAdd = new JButton("Add");
jbnAdd.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
vector.addElement(jtfInput.getText().trim());
jlbStatus.setText("Appended to end: "
+ jtfInput.getText().trim());
jtfInput.setText("");
}
});
contentPane.add(jbnAdd);
JButton jbnRemove = new JButton("Remove");
jbnRemove.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// Returns true if element in vector
if (vector.removeElement(jtfInput.getText().trim()))
jlbStatus.setText("Removed: " + jtfInput.getText());
else
jlbStatus.setText(jtfInput.getText().trim()
+ " not in vector");
}
});
contentPane.add(jbnRemove);
JButton jbnFirst = new JButton("First");
jbnFirst.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
jlbStatus.setText("First element: "
+ vector.firstElement());
} catch (NoSuchElementException exception) {
jlbStatus.setText(exception.toString());
}
}
});
contentPane.add(jbnFirst);
JButton jbnLast = new JButton("Last");
jbnLast.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
jlbStatus.setText("Last element: "
+ vector.lastElement());
} catch (NoSuchElementException exception) {
jlbStatus.setText(exception.toString());
}
}
});
contentPane.add(jbnLast);
JButton jbnEmpty = new JButton("Is Empty?");
jbnEmpty.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jlbStatus.setText(vector.isEmpty() ? "Vector is empty"
: "Vector is not empty");
}
});
contentPane.add(jbnEmpty);
JButton jbnContains = new JButton("Contains");
jbnContains.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String searchKey = jtfInput.getText().trim();
if (vector.contains(searchKey)) {
jlbStatus.setText("Vector contains " + searchKey);
} else {
jlbStatus.setText("Vector does not contain "
+ searchKey);
}
}
});
contentPane.add(jbnContains);
JButton jbnFindElement = new JButton("Find");
jbnFindElement.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jlbStatus.setText("Element found at location "
+ vector.indexOf(jtfInput.getText().trim()));
}
});
contentPane.add(jbnFindElement);
JButton jbnTrim = new JButton("Trim");
jbnTrim.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
vector.trimToSize();
jlbStatus.setText("Vector trimmed to size");
}
});
contentPane.add(jbnTrim);
JButton jbnSize = new JButton("Size/Capacity");
jbnSize.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jlbStatus.setText("Size = " + vector.size()
+ "; Capacity = " + vector.capacity());
}
});
contentPane.add(jbnSize);
JButton jbnDisplay = new JButton("Display");
jbnDisplay.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Enumeration enum1 = vector.elements();
StringBuffer buf = new StringBuffer();
while (enum1.hasMoreElements())
buf.append(enum1.nextElement()).append(" ");
JOptionPane.showMessageDialog(null, buf.toString(),
"Contents of Vector", JOptionPane.PLAIN_MESSAGE);
}
});
contentPane.add(jbnDisplay);
contentPane.add(jlbStatus);
setSize(300, 200);
setVisible(true);
}
public static void main(String args[]) {
VectorDemo vectorDemo = new VectorDemo();
vectorDemo.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
|
Output

Download VectorExample.java
|
|
|