⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vector.java

📁 已经移植好的java虚拟机
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        return -1;    }    /**     * Returns the index of the last occurrence of the specified object in     * this vector.     *     * @param   elem   the desired component.     * @return  the index of the last occurrence of the specified object in     *          this vector; returns <code>-1</code> if the object is not found.     * @since   JDK1.0     */    public int lastIndexOf(Object elem) {        return lastIndexOf(elem, elementCount-1);    }    /**     * Searches backwards for the specified object, starting from the     * specified index, and returns an index to it.     *     * @param   elem    the desired component.     * @param   index   the index to start searching from.     * @return  the index of the last occurrence of the specified object in this     *          vector at position less than <code>index</code> in the vector;     *          <code>-1</code> if the object is not found.     * @exception  IndexOutOfBoundsException  if <tt>index</tt> is greater     *             than or equal to the current size of this vector.	 * @since   JDK1.0     */    public synchronized int lastIndexOf(Object elem, int index) {        if (index >= elementCount) {            throw new IndexOutOfBoundsException(index + " >= " + elementCount);        }        if (elem == null) {            for (int i = index; i >= 0; i--)                if (elementData[i]==null)                    return i;        } else {            for (int i = index; i >= 0; i--)                if (elem.equals(elementData[i]))                    return i;        }        return -1;    }    /**     * Returns the component at the specified index.     *     * @param      index   an index into this vector.     * @return     the component at the specified index.     * @exception  ArrayIndexOutOfBoundsException  if an invalid index was     *             given.     * @since      JDK1.0     */    public synchronized Object elementAt(int index) {        if (index >= elementCount) {            throw new ArrayIndexOutOfBoundsException(index + " >= " + elementCount);        }        /* Since try/catch is free, except when the exception is thrown,           put in this extra try/catch to catch negative indexes and           display a more informative error message.  This might not           be appropriate, especially if we have a decent debugging           environment - JP. */        try {            return elementData[index];        } catch (ArrayIndexOutOfBoundsException e) {            throw new ArrayIndexOutOfBoundsException(index + " < 0");        }    }    /**     * Returns the first component of this vector.     *     * @return     the first component of this vector.     * @exception  NoSuchElementException  if this vector has no components.     * @since      JDK1.0     */    public synchronized Object firstElement() {        if (elementCount == 0) {            throw new NoSuchElementException();        }        return elementData[0];    }    /**     * Returns the last component of the vector.     *     * @return  the last component of the vector, i.e., the component at index     *          <code>size()&nbsp;-&nbsp;1</code>.     * @exception  NoSuchElementException  if this vector is empty.     * @since   JDK1.0     */    public synchronized Object lastElement() {        if (elementCount == 0) {            throw new NoSuchElementException();        }        return elementData[elementCount - 1];    }    /**     * Sets the component at the specified <code>index</code> of this     * vector to be the specified object. The previous component at that     * position is discarded.     * <p>     * The index must be a value greater than or equal to <code>0</code>     * and less than the current size of the vector.     *     * @param      obj     what the component is to be set to.     * @param      index   the specified index.     * @exception  ArrayIndexOutOfBoundsException  if the index was invalid.     * @see        java.util.Vector#size()     * @since      JDK1.0     */    public synchronized void setElementAt(Object obj, int index) {        if (index >= elementCount) {            throw new ArrayIndexOutOfBoundsException(index + " >= " +                                                     elementCount);        }        elementData[index] = obj;    }    /**     * Deletes the component at the specified index. Each component in     * this vector with an index greater or equal to the specified     * <code>index</code> is shifted downward to have an index one     * smaller than the value it had previously.     * <p>     * The index must be a value greater than or equal to <code>0</code>     * and less than the current size of the vector.     *     * @param      index   the index of the object to remove.     * @exception  ArrayIndexOutOfBoundsException  if the index was invalid.     * @see        java.util.Vector#size()     * @since      JDK1.0     */    public synchronized void removeElementAt(int index) {        if (index >= elementCount) {            throw new ArrayIndexOutOfBoundsException(index + " >= " +                                                     elementCount);        }        else if (index < 0) {            throw new ArrayIndexOutOfBoundsException(index);        }        int j = elementCount - index - 1;        if (j > 0) {            System.arraycopy(elementData, index + 1, elementData, index, j);        }        elementCount--;        elementData[elementCount] = null; /* to let gc do its work */    }    /**     * Inserts the specified object as a component in this vector at the     * specified <code>index</code>. Each component in this vector with     * an index greater or equal to the specified <code>index</code> is     * shifted upward to have an index one greater than the value it had     * previously.     * <p>     * The index must be a value greater than or equal to <code>0</code>     * and less than or equal to the current size of the vector.     *     * @param      obj     the component to insert.     * @param      index   where to insert the new component.     * @exception  ArrayIndexOutOfBoundsException  if the index was invalid.     * @see        java.util.Vector#size()     * @since      JDK1.0     */    public synchronized void insertElementAt(Object obj, int index) {        int newcount = elementCount + 1;        if (index >= newcount) {            throw new ArrayIndexOutOfBoundsException(index                                                     + " > " + elementCount);        }        if (newcount > elementData.length) {            ensureCapacityHelper(newcount);        }        System.arraycopy(elementData, index, elementData, index + 1, elementCount - index);        elementData[index] = obj;        elementCount++;    }    /**     * Adds the specified component to the end of this vector,     * increasing its size by one. The capacity of this vector is     * increased if its size becomes greater than its capacity.     *     * @param   obj   the component to be added.     * @since   JDK1.0     */    public synchronized void addElement(Object obj) {        int newcount = elementCount + 1;        if (newcount > elementData.length) {            ensureCapacityHelper(newcount);        }        elementData[elementCount++] = obj;    }    /**     * Removes the first occurrence of the argument from this vector. If     * the object is found in this vector, each component in the vector     * with an index greater or equal to the object's index is shifted     * downward to have an index one smaller than the value it had previously.     *     * @param   obj   the component to be removed.     * @return  <code>true</code> if the argument was a component of this     *          vector; <code>false</code> otherwise.     * @since   JDK1.0     */    public synchronized boolean removeElement(Object obj) {        int i = indexOf(obj);        if (i >= 0) {            removeElementAt(i);            return true;        }        return false;    }    /**     * Removes all components from this vector and sets its size to zero.     *     * @since   JDK1.0     */    public synchronized void removeAllElements() {        for (int i = 0; i < elementCount; i++) {            elementData[i] = null;        }        elementCount = 0;    }    /**     * Returns a string representation of this vector.     *     * @return  a string representation of this vector.     * @since   JDK1.0     */    public synchronized String toString() {        int max = size() - 1;        StringBuffer buf = new StringBuffer();        Enumeration e = elements();        buf.append("[");        for (int i = 0 ; i <= max ; i++) {            buf.append(e.nextElement());            if (i < max) {                buf.append(", ");            }        }        buf.append("]");        return buf.toString();    }}finalclass VectorEnumerator implements Enumeration {    Vector vector;    int count;    VectorEnumerator(Vector v) {        vector = v;        count = 0;    }    public boolean hasMoreElements() {        return count < vector.elementCount;    }    public Object nextElement() {        synchronized (vector) {            if (count < vector.elementCount) {                return vector.elementData[count++];            }        }        throw new NoSuchElementException("VectorEnumerator");    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -