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 enum = vector.elements(); StringBuffer buf = new StringBuffer(); while ( enum.hasMoreElements() ) buf.append( enum.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