home *** CD-ROM | disk | FTP | other *** search
/ Dynamic HTML Construction Kit / Dynamic HTML Construction Kit.iso / earthlink / nscomm / java40.jar / java / util / Vector.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-03  |  3.3 KB  |  230 lines

  1. package java.util;
  2.  
  3. import java.io.Serializable;
  4.  
  5. public class Vector implements Cloneable, Serializable {
  6.    protected Object[] elementData;
  7.    protected int elementCount;
  8.    protected int capacityIncrement;
  9.    private static final long serialVersionUID = -2767605614048989439L;
  10.  
  11.    public Vector(int var1, int var2) {
  12.       this.elementData = new Object[var1];
  13.       this.capacityIncrement = var2;
  14.    }
  15.  
  16.    public Vector(int var1) {
  17.       this(var1, 0);
  18.    }
  19.  
  20.    public Vector() {
  21.       this(10);
  22.    }
  23.  
  24.    public final synchronized void copyInto(Object[] var1) {
  25.       for(int var2 = this.elementCount; var2-- > 0; var1[var2] = this.elementData[var2]) {
  26.       }
  27.  
  28.    }
  29.  
  30.    public final synchronized void trimToSize() {
  31.       int var1 = this.elementData.length;
  32.       if (this.elementCount < var1) {
  33.          Object[] var2 = this.elementData;
  34.          this.elementData = new Object[this.elementCount];
  35.          System.arraycopy(var2, 0, this.elementData, 0, this.elementCount);
  36.       }
  37.  
  38.    }
  39.  
  40.    public final synchronized void ensureCapacity(int var1) {
  41.       int var2 = this.elementData.length;
  42.       if (var1 > var2) {
  43.          Object[] var3 = this.elementData;
  44.          int var4 = this.capacityIncrement > 0 ? var2 + this.capacityIncrement : var2 * 2;
  45.          if (var4 < var1) {
  46.             var4 = var1;
  47.          }
  48.  
  49.          this.elementData = new Object[var4];
  50.          System.arraycopy(var3, 0, this.elementData, 0, this.elementCount);
  51.       }
  52.  
  53.    }
  54.  
  55.    public final synchronized void setSize(int var1) {
  56.       if (var1 > this.elementCount) {
  57.          this.ensureCapacity(var1);
  58.       } else {
  59.          for(int var2 = var1; var2 < this.elementCount; ++var2) {
  60.             this.elementData[var2] = null;
  61.          }
  62.       }
  63.  
  64.       this.elementCount = var1;
  65.    }
  66.  
  67.    public final int capacity() {
  68.       return this.elementData.length;
  69.    }
  70.  
  71.    public final int size() {
  72.       return this.elementCount;
  73.    }
  74.  
  75.    public final boolean isEmpty() {
  76.       return this.elementCount == 0;
  77.    }
  78.  
  79.    public final synchronized Enumeration elements() {
  80.       return new VectorEnumerator(this);
  81.    }
  82.  
  83.    public final boolean contains(Object var1) {
  84.       return this.indexOf(var1, 0) >= 0;
  85.    }
  86.  
  87.    public final int indexOf(Object var1) {
  88.       return this.indexOf(var1, 0);
  89.    }
  90.  
  91.    public final synchronized int indexOf(Object var1, int var2) {
  92.       for(int var3 = var2; var3 < this.elementCount; ++var3) {
  93.          if (var1.equals(this.elementData[var3])) {
  94.             return var3;
  95.          }
  96.       }
  97.  
  98.       return -1;
  99.    }
  100.  
  101.    public final int lastIndexOf(Object var1) {
  102.       return this.lastIndexOf(var1, this.elementCount - 1);
  103.    }
  104.  
  105.    public final synchronized int lastIndexOf(Object var1, int var2) {
  106.       for(int var3 = var2; var3 >= 0; --var3) {
  107.          if (var1.equals(this.elementData[var3])) {
  108.             return var3;
  109.          }
  110.       }
  111.  
  112.       return -1;
  113.    }
  114.  
  115.    public final synchronized Object elementAt(int var1) {
  116.       if (var1 >= this.elementCount) {
  117.          throw new ArrayIndexOutOfBoundsException(var1 + " >= " + this.elementCount);
  118.       } else {
  119.          try {
  120.             return this.elementData[var1];
  121.          } catch (ArrayIndexOutOfBoundsException var2) {
  122.             throw new ArrayIndexOutOfBoundsException(var1 + " < 0");
  123.          }
  124.       }
  125.    }
  126.  
  127.    public final synchronized Object firstElement() {
  128.       if (this.elementCount == 0) {
  129.          throw new NoSuchElementException();
  130.       } else {
  131.          return this.elementData[0];
  132.       }
  133.    }
  134.  
  135.    public final synchronized Object lastElement() {
  136.       if (this.elementCount == 0) {
  137.          throw new NoSuchElementException();
  138.       } else {
  139.          return this.elementData[this.elementCount - 1];
  140.       }
  141.    }
  142.  
  143.    public final synchronized void setElementAt(Object var1, int var2) {
  144.       if (var2 >= this.elementCount) {
  145.          throw new ArrayIndexOutOfBoundsException(var2 + " >= " + this.elementCount);
  146.       } else {
  147.          this.elementData[var2] = var1;
  148.       }
  149.    }
  150.  
  151.    public final synchronized void removeElementAt(int var1) {
  152.       if (var1 >= this.elementCount) {
  153.          throw new ArrayIndexOutOfBoundsException(var1 + " >= " + this.elementCount);
  154.       } else if (var1 < 0) {
  155.          throw new ArrayIndexOutOfBoundsException(var1);
  156.       } else {
  157.          int var2 = this.elementCount - var1 - 1;
  158.          if (var2 > 0) {
  159.             System.arraycopy(this.elementData, var1 + 1, this.elementData, var1, var2);
  160.          }
  161.  
  162.          --this.elementCount;
  163.          this.elementData[this.elementCount] = null;
  164.       }
  165.    }
  166.  
  167.    public final synchronized void insertElementAt(Object var1, int var2) {
  168.       if (var2 >= this.elementCount + 1) {
  169.          throw new ArrayIndexOutOfBoundsException(var2 + " > " + this.elementCount);
  170.       } else {
  171.          this.ensureCapacity(this.elementCount + 1);
  172.          System.arraycopy(this.elementData, var2, this.elementData, var2 + 1, this.elementCount - var2);
  173.          this.elementData[var2] = var1;
  174.          ++this.elementCount;
  175.       }
  176.    }
  177.  
  178.    public final synchronized void addElement(Object var1) {
  179.       this.ensureCapacity(this.elementCount + 1);
  180.       this.elementData[this.elementCount++] = var1;
  181.    }
  182.  
  183.    public final synchronized boolean removeElement(Object var1) {
  184.       int var2 = this.indexOf(var1);
  185.       if (var2 >= 0) {
  186.          this.removeElementAt(var2);
  187.          return true;
  188.       } else {
  189.          return false;
  190.       }
  191.    }
  192.  
  193.    public final synchronized void removeAllElements() {
  194.       for(int var1 = 0; var1 < this.elementCount; ++var1) {
  195.          this.elementData[var1] = null;
  196.       }
  197.  
  198.       this.elementCount = 0;
  199.    }
  200.  
  201.    public synchronized Object clone() {
  202.       try {
  203.          Vector var1 = (Vector)super.clone();
  204.          var1.elementData = new Object[this.elementCount];
  205.          System.arraycopy(this.elementData, 0, var1.elementData, 0, this.elementCount);
  206.          return var1;
  207.       } catch (CloneNotSupportedException var2) {
  208.          throw new InternalError();
  209.       }
  210.    }
  211.  
  212.    public final synchronized String toString() {
  213.       int var1 = this.size() - 1;
  214.       StringBuffer var2 = new StringBuffer();
  215.       Enumeration var3 = this.elements();
  216.       var2.append("[");
  217.  
  218.       for(int var4 = 0; var4 <= var1; ++var4) {
  219.          String var5 = var3.nextElement().toString();
  220.          var2.append(var5);
  221.          if (var4 < var1) {
  222.             var2.append(", ");
  223.          }
  224.       }
  225.  
  226.       var2.append("]");
  227.       return var2.toString();
  228.    }
  229. }
  230.