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

📄 vector.java

📁 已经移植好的java虚拟机
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * Copyright 1995-2002 by Sun Microsystems, Inc., * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. * All rights reserved. * * This software is the confidential and proprietary information * of Sun Microsystems, Inc. ("Confidential Information").  You * shall not disclose such Confidential Information and shall use * it only in accordance with the terms of the license agreement * you entered into with Sun. * Use is subject to license terms. */package java.util;/** * The <code>Vector</code> class implements a growable array of * objects. Like an array, it contains components that can be * accessed using an integer index. However, the size of a * <code>Vector</code> can grow or shrink as needed to accommodate * adding and removing items after the <code>Vector</code> has been created. * <p> * Each vector tries to optimize storage management by maintaining a * <code>capacity</code> and a <code>capacityIncrement</code>. The * <code>capacity</code> is always at least as large as the vector * size; it is usually larger because as components are added to the * vector, the vector's storage increases in chunks the size of * <code>capacityIncrement</code>. An application can increase the * capacity of a vector before inserting a large number of * components; this reduces the amount of incremental reallocation. * <p> * Note: To conserve space, the CLDC implementation * is based on JDK 1.1.8, not JDK 1.3. * * @author  Lee Boynton * @author  Jonathan Payne * @version 1.39, 07/01/98 (CLDC 1.0, Spring 2000) * @since   JDK1.0, CLDC 1.0 */publicclass Vector {    /**     * The array buffer into which the components of the vector are     * stored. The capacity of the vector is the length of this array buffer.     *     * @since   JDK1.0     */    protected Object elementData[];    /**     * The number of valid components in the vector.     *     * @since   JDK1.0     */    protected int elementCount;    /**     * The amount by which the capacity of the vector is automatically     * incremented when its size becomes greater than its capacity. If     * the capacity increment is <code>0</code>, the capacity of the     * vector is doubled each time it needs to grow.     *     * @since   JDK1.0     */    protected int capacityIncrement;    /**     * Constructs an empty vector with the specified initial capacity and     * capacity increment.     *     * @param   initialCapacity     the initial capacity of the vector.     * @param   capacityIncrement   the amount by which the capacity is     *                              increased when the vector overflows.     * @exception IllegalArgumentException if the specified initial capacity     *            is negative     */    public Vector(int initialCapacity, int capacityIncrement) {        super();        if (initialCapacity < 0)            throw new IllegalArgumentException("Illegal Capacity: "+                                               initialCapacity);        this.elementData = new Object[initialCapacity];        this.capacityIncrement = capacityIncrement;    }    /**     * Constructs an empty vector with the specified initial capacity.     *     * @param   initialCapacity   the initial capacity of the vector.     * @since   JDK1.0     */    public Vector(int initialCapacity) {        this(initialCapacity, 0);    }    /**     * Constructs an empty vector.     *     * @since   JDK1.0     */    public Vector() {        this(10);    }    /**     * Copies the components of this vector into the specified array.     * The array must be big enough to hold all the objects in this  vector.     *     * @param   anArray   the array into which the components get copied.     * @since   JDK1.0     */    public synchronized void copyInto(Object anArray[]) {        int i = elementCount;        while (i-- > 0) {            anArray[i] = elementData[i];        }    }    /**     * Trims the capacity of this vector to be the vector's current     * size. An application can use this operation to minimize the     * storage of a vector.     *     * @since   JDK1.0     */    public synchronized void trimToSize() {        int oldCapacity = elementData.length;        if (elementCount < oldCapacity) {            Object oldData[] = elementData;            elementData = new Object[elementCount];            System.arraycopy(oldData, 0, elementData, 0, elementCount);        }    }    /**     * Increases the capacity of this vector, if necessary, to ensure     * that it can hold at least the number of components specified by     * the minimum capacity argument.     *     * @param   minCapacity   the desired minimum capacity.     * @since   JDK1.0     */    public synchronized void ensureCapacity(int minCapacity) {        if (minCapacity > elementData.length) {            ensureCapacityHelper(minCapacity);        }    }    /**     * This implements the unsynchronized semantics of ensureCapacity.     * Synchronized methods in this class can internally call this     * method for ensuring capacity without incurring the cost of an     * extra synchronization.     *     * @see java.util.Vector#ensureCapacity(int)     */    private void ensureCapacityHelper(int minCapacity) {        int oldCapacity = elementData.length;        Object oldData[] = elementData;        int newCapacity = (capacityIncrement > 0) ?            (oldCapacity + capacityIncrement) : (oldCapacity * 2);        if (newCapacity < minCapacity) {            newCapacity = minCapacity;        }        elementData = new Object[newCapacity];        System.arraycopy(oldData, 0, elementData, 0, elementCount);    }    /**     * Sets the size of this vector. If the new size is greater than the     * current size, new <code>null</code> items are added to the end of     * the vector. If the new size is less than the current size, all     * components at index <code>newSize</code> and greater are discarded.     *     * @param   newSize   the new size of this vector.     * @since   JDK1.0     */    public synchronized void setSize(int newSize) {        if ((newSize > elementCount) && (newSize > elementData.length)) {            ensureCapacityHelper(newSize);        } else {            for (int i = newSize ; i < elementCount ; i++) {                elementData[i] = null;            }        }        elementCount = newSize;    }    /**     * Returns the current capacity of this vector.     *     * @return  the current capacity of this vector.     * @since   JDK1.0     */    public int capacity() {        return elementData.length;    }    /**     * Returns the number of components in this vector.     *     * @return  the number of components in this vector.     * @since   JDK1.0     */    public int size() {        return elementCount;    }    /**     * Tests if this vector has no components.     *     * @return  <code>true</code> if this vector has no components;     *          <code>false</code> otherwise.     * @since   JDK1.0     */    public boolean isEmpty() {        return elementCount == 0;    }    /**     * Returns an enumeration of the components of this vector.     *     * @return  an enumeration of the components of this vector.     * @see     java.util.Enumeration     * @since   JDK1.0     */    public synchronized Enumeration elements() {        return new VectorEnumerator(this);    }    /**     * Tests if the specified object is a component in this vector.     *     * @param   elem   an object.     * @return  <code>true</code> if the specified object is a component in     *          this vector; <code>false</code> otherwise.     * @since   JDK1.0     */    public boolean contains(Object elem) {        return indexOf(elem, 0) >= 0;    }    /**     * Searches for the first occurence of the given argument, testing     * for equality using the <code>equals</code> method.     *     * @param   elem   an object.     * @return  the index of the first occurrence of the argument in this     *          vector; returns <code>-1</code> if the object is not found.     * @see     java.lang.Object#equals(java.lang.Object)     * @since   JDK1.0     */    public int indexOf(Object elem) {        return indexOf(elem, 0);    }    /**     * Searches for the first occurence of the given argument, beginning     * the search at <code>index</code>, and testing for equality using     * the <code>equals</code> method.     *     * @param   elem    an object.     * @param   index   the index to start searching from.     * @return  the index of the first occurrence of the object argument in     *          this vector at position <code>index</code> or later in the     *          vector; returns <code>-1</code> if the object is not found.     * @see     java.lang.Object#equals(java.lang.Object)     * @since   JDK1.0     */    public synchronized int indexOf(Object elem, int index) {        if (elem == null) {            for (int i = index ; i < elementCount ; i++)                if (elementData[i]==null)                    return i;        } else {            for (int i = index ; i < elementCount ; i++)                if (elem.equals(elementData[i]))                    return i;        }

⌨️ 快捷键说明

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