Java Vector

INTRODUCTION TO JAVA VECTOR

  • The Java 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.
public class Vector<E>
extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, Serializable

JAVA VECTOR EXAMPLE

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

No comments:

Post a Comment