home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1999 April / DPPCPRO0499.ISO / April / Notes / 50b2wic.exe / DATA1.CAB / NotesProgramFilesJavaSupport / rt.jar / java / util / Vector.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-04-23  |  4.2 KB  |  242 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.       if (var1 > this.elementData.length) {
  42.          this.ensureCapacityHelper(var1);
  43.       }
  44.  
  45.    }
  46.  
  47.    private void ensureCapacityHelper(int var1) {
  48.       int var2 = this.elementData.length;
  49.       Object[] var3 = this.elementData;
  50.       int var4 = this.capacityIncrement > 0 ? var2 + this.capacityIncrement : var2 * 2;
  51.       if (var4 < var1) {
  52.          var4 = var1;
  53.       }
  54.  
  55.       this.elementData = new Object[var4];
  56.       System.arraycopy(var3, 0, this.elementData, 0, this.elementCount);
  57.    }
  58.  
  59.    public final synchronized void setSize(int var1) {
  60.       if (var1 > this.elementCount && var1 > this.elementData.length) {
  61.          this.ensureCapacityHelper(var1);
  62.       } else {
  63.          for(int var2 = var1; var2 < this.elementCount; ++var2) {
  64.             this.elementData[var2] = null;
  65.          }
  66.       }
  67.  
  68.       this.elementCount = var1;
  69.    }
  70.  
  71.    public final int capacity() {
  72.       return this.elementData.length;
  73.    }
  74.  
  75.    public final int size() {
  76.       return this.elementCount;
  77.    }
  78.  
  79.    public final boolean isEmpty() {
  80.       return this.elementCount == 0;
  81.    }
  82.  
  83.    public final synchronized Enumeration elements() {
  84.       return new VectorEnumerator(this);
  85.    }
  86.  
  87.    public final boolean contains(Object var1) {
  88.       return this.indexOf(var1, 0) >= 0;
  89.    }
  90.  
  91.    public final int indexOf(Object var1) {
  92.       return this.indexOf(var1, 0);
  93.    }
  94.  
  95.    public final synchronized int indexOf(Object var1, int var2) {
  96.       for(int var3 = var2; var3 < this.elementCount; ++var3) {
  97.          if (var1.equals(this.elementData[var3])) {
  98.             return var3;
  99.          }
  100.       }
  101.  
  102.       return -1;
  103.    }
  104.  
  105.    public final int lastIndexOf(Object var1) {
  106.       return this.lastIndexOf(var1, this.elementCount - 1);
  107.    }
  108.  
  109.    public final synchronized int lastIndexOf(Object var1, int var2) {
  110.       for(int var3 = var2; var3 >= 0; --var3) {
  111.          if (var1.equals(this.elementData[var3])) {
  112.             return var3;
  113.          }
  114.       }
  115.  
  116.       return -1;
  117.    }
  118.  
  119.    public final synchronized Object elementAt(int var1) {
  120.       if (var1 >= this.elementCount) {
  121.          throw new ArrayIndexOutOfBoundsException(var1 + " >= " + this.elementCount);
  122.       } else {
  123.          try {
  124.             return this.elementData[var1];
  125.          } catch (ArrayIndexOutOfBoundsException var2) {
  126.             throw new ArrayIndexOutOfBoundsException(var1 + " < 0");
  127.          }
  128.       }
  129.    }
  130.  
  131.    public final synchronized Object firstElement() {
  132.       if (this.elementCount == 0) {
  133.          throw new NoSuchElementException();
  134.       } else {
  135.          return this.elementData[0];
  136.       }
  137.    }
  138.  
  139.    public final synchronized Object lastElement() {
  140.       if (this.elementCount == 0) {
  141.          throw new NoSuchElementException();
  142.       } else {
  143.          return this.elementData[this.elementCount - 1];
  144.       }
  145.    }
  146.  
  147.    public final synchronized void setElementAt(Object var1, int var2) {
  148.       if (var2 >= this.elementCount) {
  149.          throw new ArrayIndexOutOfBoundsException(var2 + " >= " + this.elementCount);
  150.       } else {
  151.          this.elementData[var2] = var1;
  152.       }
  153.    }
  154.  
  155.    public final synchronized void removeElementAt(int var1) {
  156.       if (var1 >= this.elementCount) {
  157.          throw new ArrayIndexOutOfBoundsException(var1 + " >= " + this.elementCount);
  158.       } else if (var1 < 0) {
  159.          throw new ArrayIndexOutOfBoundsException(var1);
  160.       } else {
  161.          int var2 = this.elementCount - var1 - 1;
  162.          if (var2 > 0) {
  163.             System.arraycopy(this.elementData, var1 + 1, this.elementData, var1, var2);
  164.          }
  165.  
  166.          --this.elementCount;
  167.          this.elementData[this.elementCount] = null;
  168.       }
  169.    }
  170.  
  171.    public final synchronized void insertElementAt(Object var1, int var2) {
  172.       int var3 = this.elementCount + 1;
  173.       if (var2 >= var3) {
  174.          throw new ArrayIndexOutOfBoundsException(var2 + " > " + this.elementCount);
  175.       } else {
  176.          if (var3 > this.elementData.length) {
  177.             this.ensureCapacityHelper(var3);
  178.          }
  179.  
  180.          System.arraycopy(this.elementData, var2, this.elementData, var2 + 1, this.elementCount - var2);
  181.          this.elementData[var2] = var1;
  182.          ++this.elementCount;
  183.       }
  184.    }
  185.  
  186.    public final synchronized void addElement(Object var1) {
  187.       int var2 = this.elementCount + 1;
  188.       if (var2 > this.elementData.length) {
  189.          this.ensureCapacityHelper(var2);
  190.       }
  191.  
  192.       this.elementData[this.elementCount++] = var1;
  193.    }
  194.  
  195.    public final synchronized boolean removeElement(Object var1) {
  196.       int var2 = this.indexOf(var1);
  197.       if (var2 >= 0) {
  198.          this.removeElementAt(var2);
  199.          return true;
  200.       } else {
  201.          return false;
  202.       }
  203.    }
  204.  
  205.    public final synchronized void removeAllElements() {
  206.       for(int var1 = 0; var1 < this.elementCount; ++var1) {
  207.          this.elementData[var1] = null;
  208.       }
  209.  
  210.       this.elementCount = 0;
  211.    }
  212.  
  213.    public synchronized Object clone() {
  214.       try {
  215.          Vector var1 = (Vector)super.clone();
  216.          var1.elementData = new Object[this.elementCount];
  217.          System.arraycopy(this.elementData, 0, var1.elementData, 0, this.elementCount);
  218.          return var1;
  219.       } catch (CloneNotSupportedException var2) {
  220.          throw new InternalError();
  221.       }
  222.    }
  223.  
  224.    public final synchronized String toString() {
  225.       int var1 = this.size() - 1;
  226.       StringBuffer var2 = new StringBuffer();
  227.       Enumeration var3 = this.elements();
  228.       var2.append("[");
  229.  
  230.       for(int var4 = 0; var4 <= var1; ++var4) {
  231.          String var5 = var3.nextElement().toString();
  232.          var2.append(var5);
  233.          if (var4 < var1) {
  234.             var2.append(", ");
  235.          }
  236.       }
  237.  
  238.       var2.append("]");
  239.       return var2.toString();
  240.    }
  241. }
  242.