public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable
Vector クラスは、オブジェクトの可変長配列を実装します。ここには配列と同じように、整数インデックスを使ってアクセスできる要素が格納されています。しかし、Vector のサイズは、Vector の作成後に追加および削除された項目を格納できるように必要に応じて増やしたり減らしたりすることができます。
各ベクトルは、capacity と capacityIncrement を維持することによって記憶領域の管理を最適化しようとします。capacity は常にベクトルのサイズ以上であり、通常はより大きくなります。これは、ベクトルにコンポーネントが追加されるとき、ベクトルの記憶領域は capacityIncrement ずつかたまりで増やされるからです。多くの要素を挿入する前にアプリケーションで容量を必要な値に設定しておけば、メモリーの再配分の回数を減らすことができます。
このクラスの iterator および listIterator メソッドによって返されるイテレータは、フェイルファストです。イテレータの作成後に、イテレータ自体の remove または add メソッド以外の方法でベクトルが構造的に変更されると、イテレータは ConcurrentModificationException をスローします。このように、並行して変更が行われると、イテレータは、将来の予測できない時点において予測できない動作が発生する危険を回避するために、ただちにかつ手際よく例外をスローします。elements メソッドが返す Enumerations は、フェイルファストではありません。
イテレータのフェイルファスト動作は実際には保証できません。一般的に、synchronized なしの並行変更がある場合、確実に保証することは不可能です。フェイルファストイテレータは、ベストエフォートベースで ConcurrentModificationException をスローします。したがって、正確を期すためにこの例外に依存するプログラムを書くことは誤りです。イテレータのフェイルファスト動作はバグを検出するためにのみ使用すべきです。
このクラスは、Java 2 プラットフォーム v1.2 の時点で List インタフェースを実装するように改良された結果、Java Collections Framework のメンバーとなりました。新しいコレクションの実装とは異なり、Vector は同期をとります。スレッドセーフな実装が必要ない場合は、Vector の代わりに ArrayList を使用することをお勧めします。
Collection, LinkedList, 直列化された形式| 修飾子と型 | フィールドと説明 |
|---|---|
protected int |
capacityIncrement
Vector のサイズが Vector の容量を超えるときに自動的に増やされる量です。
|
protected int |
elementCount
この
Vector オブジェクト内の有効なコンポーネントの数です。 |
protected Object[] |
elementData
Vector の要素が格納される配列バッファーです。
|
modCount| コンストラクタと説明 |
|---|
Vector()
空のベクトルを作成し、その内部データ配列のサイズが
10 で、その標準的な増分がゼロであるようにします。 |
Vector(Collection<? extends E> c)
指定されたコレクションのイテレータが返した順序で、その要素を格納する Vector を作成します。
|
Vector(int initialCapacity)
指定された初期容量、および増加量がゼロである、空のベクトルを作成します。
|
Vector(int initialCapacity, int capacityIncrement)
指定された容量と増加量で空のベクトルを作成します。
|
| 修飾子と型 | メソッドと説明 |
|---|---|
boolean |
add(E e)
Vector の末尾に指定の要素を追加します。
|
void |
add(int index, E element)
Vector 内の指定された位置に指定された要素を挿入します。
|
boolean |
addAll(Collection<? extends E> c)
指定された Collection 内のすべての要素をこの Vector の末尾に、その Collection の Iterator によって返される順序で追加します。
|
boolean |
addAll(int index, Collection<? extends E> c)
指定された Collection 内のすべての要素を、Vector の指定された位置に挿入します。
|
void |
addElement(E obj)
指定された要素を Vector の最後に追加し、サイズを 1 増やします。
|
int |
capacity()
Vector の現在の容量を返します。
|
void |
clear()
すべての要素を Vector から削除します。
|
Object |
clone()
Vector をコピーします。
|
boolean |
contains(Object o)
指定された要素がこのベクトルに含まれている場合に
true を返します。 |
boolean |
containsAll(Collection<?> c)
Vector が指定の Collection 内のすべての要素を保持する場合に true を返します。
|
void |
copyInto(Object[] anArray)
Vector の要素を、指定された配列にコピーします。
|
E |
elementAt(int index)
指定されたインデックスの要素を返します。
|
Enumeration<E> |
elements()
この Vector の要素を列挙したリストを返します。
|
void |
ensureCapacity(int minCapacity)
Vector の収容量を必要に応じて増やして、少なくとも最小収容量の引数で指定される要素数を保持できることを保証します。
|
boolean |
equals(Object o)
指定された Object が Vector と等しいかどうかを比較します。
|
E |
firstElement()
このベクトルの最初のコンポーネント (インデックス
0 にある項目) を返します。 |
E |
get(int index)
Vector 内の指定された位置にある要素を返します。
|
int |
hashCode()
Vector のハッシュコード値を返します。
|
int |
indexOf(Object o)
指定された要素がベクトル内で最初に検出された位置のインデックスを返します。指定された要素がベクトルにない場合は -1 を返します。
|
int |
indexOf(Object o, int index)
指定された要素をこのベクトル内で
index から順方向に検索して、最初に検出された位置のインデックスを返します。要素が見つからない場合は -1 を返します。 |
void |
insertElementAt(E obj, int index)
指定されたオブジェクトを、このベクトル内の指定された
index の位置にコンポーネントとして挿入します。 |
boolean |
isEmpty()
Vector が要素を持たないかどうかを判定します。
|
Iterator<E> |
iterator()
このリスト内の要素を適切な順序で反復するイテレータを返します。
|
E |
lastElement()
Vector の最後の要素を返します。
|
int |
lastIndexOf(Object o)
指定された要素がベクトル内で最後に検出された位置のインデックスを返します。指定された要素がベクトルにない場合は -1 を返します。
|
int |
lastIndexOf(Object o, int index)
指定された要素をこのベクトル内で
index から逆方向に検索して、最後に検出された位置のインデックスを返します。要素が見つからない場合は -1 を返します。 |
ListIterator<E> |
listIterator()
このリスト内の要素を (適切な順序で) 反復するリストイテレータを返します。
|
ListIterator<E> |
listIterator(int index)
リスト内の指定された位置で始まる、リスト内の要素を (適切な順序で) 反復するリストイテレータを返します。
|
E |
remove(int index)
ベクトルの指定された位置にある要素を削除します。
|
boolean |
remove(Object o)
Vector 内で最初に検出された指定された要素を削除します。
|
boolean |
removeAll(Collection<?> c)
Vector から、指定された Collection 内に保持されているすべての要素を削除します。
|
void |
removeAllElements()
Vector からすべての要素を削除し、サイズを 0 に設定します。
|
boolean |
removeElement(Object obj)
最初に検出された (最小インデックスの) 引数の要素を Vector から削除します。
|
void |
removeElementAt(int index)
指定されたインデックスのコンポーネントを削除します。
|
protected void |
removeRange(int fromIndex, int toIndex)
fromIndex (これを含む) から toIndex (これを含まない) の範囲のインデックスを持つすべての要素をこのリストから削除します。 |
boolean |
retainAll(Collection<?> c)
指定された Collection 内に保持されている、Vector 内の要素だけを保持します。
|
E |
set(int index, E element)
Vector 内の指定された位置にある要素を、指定の要素で置き換えます。
|
void |
setElementAt(E obj, int index)
このベクトルの指定された
index にあるコンポーネントが指定されたオブジェクトになるように設定します。 |
void |
setSize(int newSize)
Vector のサイズを設定します。
|
int |
size()
Vector の要素数を返します。
|
List<E> |
subList(int fromIndex, int toIndex)
この List の、fromIndex (これを含む) と toIndex (これを含まない) の間の部分のビューを返します。
|
Object[] |
toArray()
Vector 内のすべての要素を正しい順序で保持する配列を返します。
|
<T> T[] |
toArray(T[] a)
Vector 内のすべての要素が正しい順序で格納されている配列を返します。返される配列の実行時の型は指定された配列の型になります。
|
String |
toString()
各要素の String 表現を保持している、Vector の文字列表現を返します。
|
void |
trimToSize()
Vector の容量を、現在の容量にまで減らします。
|
protected Object[] elementData
Vector 内の最後の要素の後に来る配列要素は null です。
protected int elementCount
Vector オブジェクト内の有効なコンポーネントの数です。elementData[0] から elementData[elementCount-1] までの要素が実際の項目となります。protected int capacityIncrement
public Vector(int initialCapacity,
int capacityIncrement)
initialCapacity - ベクトルの初期容量capacityIncrement - ベクトルがオーバーフローした際の容量の増加量IllegalArgumentException - 指定された初期容量が負の場合public Vector(int initialCapacity)
initialCapacity - ベクトルの初期容量IllegalArgumentException - 指定された初期容量が負の場合public Vector()
10 で、その標準的な増分がゼロであるようにします。public Vector(Collection<? extends E> c)
c - 要素がこのベクトルに配置されるコレクションNullPointerException - 指定されたコレクションが null である場合public void copyInto(Object[] anArray)
k の項目が、anArray のコンポーネント k にコピーされます。anArray - コピーしたコンポーネントをコピーする配列NullPointerException - 指定された配列が null である場合IndexOutOfBoundsException - 指定された配列が小さすぎて、このベクトルのすべてのコンポーネントを格納できない場合ArrayStoreException - このベクトルのあるコンポーネントが、指定された配列に格納できる実行時の型ではない場合toArray(Object[])public void trimToSize()
elementData フィールドに保持されているその内部データ配列を小さいものに置き換えることで、容量を現在のサイズに等しくなるように変更します。アプリケーションでこの操作を行うと Vector のメモリー使用量を最小にできます。public void ensureCapacity(int minCapacity)
このベクトルの現在の容量が minCapacity よりも小さい場合、elementData フィールドに保持されているその内部データ配列を大きいものに置き換えることで、容量を増やします。新しいデータ配列のサイズは、capacityIncrement がゼロ以下でないかぎり、元のサイズにその値を加えたものになります。capacityIncrement がゼロ以下の場合は新しい容量は元の容量の 2 倍になります。新しいサイズがまだ minCapacity よりも小さい場合には、新しい容量は minCapacity になります。
minCapacity - 目的の最小容量public void setSize(int newSize)
null 項目がベクトルの最後に追加されます。新しいサイズが現在のサイズより小さい場合、インデックス newSize 以降のすべてのコンポーネントが破棄されます。newSize - このベクトルの新しいサイズArrayIndexOutOfBoundsException - 新しいサイズが負の値の場合public int capacity()
elementData フィールドに保持されている、その内部データ配列の長さ)public int size()
size、インタフェース: Collection<E>size、インタフェース: List<E>size、クラス: AbstractCollection<E>public boolean isEmpty()
isEmpty、インタフェース: Collection<E>isEmpty、インタフェース: List<E>isEmpty、クラス: AbstractCollection<E>true、そうでない場合は false。public Enumeration<E> elements()
Enumeration オブジェクトは、このベクトルのすべての項目を生成します。最初に生成される項目はインデックス 0 の項目、次に生成される項目はインデックス 1 の項目、といった具合になります。Iteratorpublic boolean contains(Object o)
true を返します。つまり、このベクトルに、(o==null ? e==null : o.equals(e)) となる要素 e が 1 つ以上含まれている場合にのみ true を返します。contains、インタフェース: Collection<E>contains、インタフェース: List<E>contains、クラス: AbstractCollection<E>o - このベクトル内にあるかどうかが判定される要素truepublic int indexOf(Object o)
i を返します。そのようなインデックスが存在しない場合は -1 を返します。public int indexOf(Object o, int index)
index から順方向に検索して、最初に検出された位置のインデックスを返します。要素が見つからない場合は -1 を返します。つまり、(i >= index && (o==null ? get(i)==null : o.equals(get(i)))) となる、最小のインデックス i を返します。そのようなインデックスが存在しない場合は -1 を返します。o - 検索する要素index - 検索開始位置のインデックスindex 以降の位置で、要素が最初に現れる位置のインデックス。要素が見つからない場合は -1。IndexOutOfBoundsException - 指定されたインデックスが負の値の場合Object.equals(Object)public int lastIndexOf(Object o)
i を返します。そのようなインデックスが存在しない場合は -1 を返します。lastIndexOf、インタフェース: List<E>lastIndexOf、クラス: AbstractList<E>o - 検索する要素public int lastIndexOf(Object o, int index)
index から逆方向に検索して、最後に検出された位置のインデックスを返します。要素が見つからない場合は -1 を返します。つまり、(i <= index && (o==null ? get(i)==null : o.equals(get(i)))) となる、最大のインデックス i を返します。そのようなインデックスが存在しない場合は -1 を返します。o - 検索する要素index - 逆方向の検索開始位置のインデックスindex 以前の位置で、要素が最後に現れる位置のインデックス。要素が見つからない場合は -1。IndexOutOfBoundsException - 指定されたインデックスが、このベクトルの現在のサイズ以上である場合public E elementAt(int index)
index - このベクトルのインデックスArrayIndexOutOfBoundsException - インデックスが範囲外の場合 (index < 0 || index >= size())public E firstElement()
0 にある項目) を返します。NoSuchElementException - このベクトルがコンポーネントを持たない場合public E lastElement()
size() - 1 のコンポーネント。NoSuchElementException - このベクトルが空の場合public void setElementAt(E obj, int index)
index にあるコンポーネントが指定されたオブジェクトになるように設定します。そのインデックスにあった要素は破棄されます。
インデックスの値は、0 以上で、ベクトルの現在のサイズよりも小さくする必要があります。
このメソッドは機能的に set(int, E) メソッド (List インタフェースの一部) と同じです。配列の使い方により適した形にするために set メソッドがパラメータの順序を逆にすることに注意してください。また、set メソッドが指定された位置に格納されていた古い値を返すことにも注意してください。
obj - コンポーネントに設定されるオブジェクトindex - 指定するインデックスArrayIndexOutOfBoundsException - インデックスが範囲外の場合 (index < 0 || index >= size())public void removeElementAt(int index)
index と等しいか、それより大きいインデックスを持つものはすべて前方に移動し、そのインデックスの値は以前より 1 つ小さい値になります。このベクトルのサイズは 1 だけ減らされます。
インデックスの値は、0 以上で、ベクトルの現在のサイズよりも小さくする必要があります。
このメソッドは機能的に remove(int) メソッド (List インタフェースの一部) と同じです。remove メソッドが指定された位置に格納されていた古い値を返すことに注意してください。
index - 削除されるオブジェクトのインデックスArrayIndexOutOfBoundsException - インデックスが範囲外の場合 (index < 0 || index >= size())public void insertElementAt(E obj, int index)
index の位置にコンポーネントとして挿入します。このベクトル内にある各コンポーネントのうち、指定された index と等しいか、それより大きいインデックスを持つものはすべて後方に移動し、そのインデックスの値は以前より 1 つ大きい値になります。
インデックスの値は、0 以上で、ベクトルの現在のサイズ以下にする必要があります。インデックスが Vector の現在のサイズに等しい場合、新しい要素は Vector の末尾に追加されます。
このメソッドは機能的に add(int, E) メソッド (List インタフェースの一部) と同じです。配列の使い方により適した形にするために add メソッドがパラメータの順序を逆にすることに注意してください。
obj - 挿入されるコンポーネントindex - 新しいコンポーネントを挿入する位置ArrayIndexOutOfBoundsException - インデックスが範囲外の場合 (index < 0 || index > size())public void addElement(E obj)
obj - 追加されるコンポーネントpublic boolean removeElement(Object obj)
このメソッドは機能的に remove(Object) メソッド (List インタフェースの一部) と同じです。
obj - 削除されるコンポーネントtrue、そうでない場合は false。public void removeAllElements()
public Object clone()
Vector オブジェクトの元の内部データ配列への参照を保持するわけではありません。public Object[] toArray()
toArray、インタフェース: Collection<E>toArray、インタフェース: List<E>toArray、クラス: AbstractCollection<E>Arrays.asList(Object[])public <T> T[] toArray(T[] a)
Vector が指定された配列に余裕をもって収まる場合、つまり配列が Vector よりも要素を数多く持つ場合、Vector の末尾の直後に来る配列内の要素は null に設定されます。このベクトルに null 要素がないことを呼び出し側が知っている場合にのみ、この特性を利用してベクトルの長さを判断できます。
toArray、インタフェース: Collection<E>toArray、インタフェース: List<E>toArray、クラス: AbstractCollection<E>a - このベクトルの要素の格納先の配列。配列のサイズが十分でない場合は、同じ実行時の型で新しい配列が格納用として割り当てられるArrayStoreException - a の実行時の型が、このベクトル内のすべての要素の実行時の型のスーパータイプでない場合NullPointerException - 指定された配列が null である場合public E get(int index)
get、インタフェース: List<E>get、クラス: AbstractList<E>index - 返される要素のインデックスArrayIndexOutOfBoundsException - インデックスが範囲外の場合 (index < 0 || index >= size())public E set(int index, E element)
set、インタフェース: List<E>set、クラス: AbstractList<E>index - 置換される要素のインデックスelement - 指定された位置に格納される要素ArrayIndexOutOfBoundsException - インデックスが範囲外の場合 (index < 0 || index >= size())public boolean add(E e)
add、インタフェース: Collection<E>add、インタフェース: List<E>add、クラス: AbstractList<E>e - このベクトルに追加される要素true (Collection.add(E) で指定されているとおり)public boolean remove(Object o)
(o==null ? get(i)==null : o.equals(get(i))) となる、最小のインデックス i を持つ要素を削除します (そのような要素が存在する場合)。remove、インタフェース: Collection<E>remove、インタフェース: List<E>remove、クラス: AbstractCollection<E>o - このベクトルから削除される要素 (その要素が存在する場合)public void add(int index,
E element)
add、インタフェース: List<E>add、クラス: AbstractList<E>index - 指定の要素が挿入される位置のインデックスelement - 挿入される要素ArrayIndexOutOfBoundsException - インデックスが範囲外の場合 (index < 0 || index > size())public E remove(int index)
remove、インタフェース: List<E>remove、クラス: AbstractList<E>index - 削除される要素のインデックスArrayIndexOutOfBoundsException - インデックスが範囲外の場合 (index < 0 || index >= size())public void clear()
clear、インタフェース: Collection<E>clear、インタフェース: List<E>clear、クラス: AbstractList<E>public boolean containsAll(Collection<?> c)
containsAll、インタフェース: Collection<E>containsAll、インタフェース: List<E>containsAll、クラス: AbstractCollection<E>c - 要素がこの Vector に含まれているかどうかを調べるコレクションNullPointerException - 指定されたコレクションが null である場合AbstractCollection.contains(Object)public boolean addAll(Collection<? extends E> c)
addAll、インタフェース: Collection<E>addAll、インタフェース: List<E>addAll、クラス: AbstractCollection<E>c - このベクトルに挿入される要素trueNullPointerException - 指定されたコレクションが null である場合AbstractCollection.add(Object)public boolean removeAll(Collection<?> c)
removeAll、インタフェース: Collection<E>removeAll、インタフェース: List<E>removeAll、クラス: AbstractCollection<E>c - Vector から削除される要素のコレクションClassCastException - このベクトル内の 1 つ以上の要素の型が、指定されたコレクションと互換でない場合 (省略可能)NullPointerException - このベクトルに 1 つ以上の null 要素が含まれており、指定されたコレクションが null 要素をサポートしない場合 (省略可能)、または指定されたコレクションが null の場合AbstractCollection.remove(Object), AbstractCollection.contains(Object)public boolean retainAll(Collection<?> c)
retainAll、インタフェース: Collection<E>retainAll、インタフェース: List<E>retainAll、クラス: AbstractCollection<E>c - この Vector に保持される要素のコレクション (ほかのすべての要素は削除)ClassCastException - このベクトル内の 1 つ以上の要素の型が、指定されたコレクションと互換でない場合 (省略可能)NullPointerException - このベクトルに 1 つ以上の null 要素が含まれており、指定されたコレクションが null 要素をサポートしない場合 (省略可能)、または指定されたコレクションが null の場合AbstractCollection.remove(Object), AbstractCollection.contains(Object)public boolean addAll(int index,
Collection<? extends E> c)
addAll、インタフェース: List<E>addAll、クラス: AbstractList<E>index - 指定されたコレクションの最初の要素を挿入する位置のインデックスc - このベクトルに挿入される要素trueArrayIndexOutOfBoundsException - インデックスが範囲外の場合 (index < 0 || index > size())NullPointerException - 指定されたコレクションが null である場合public boolean equals(Object o)
(e1==null ? e2==null : e1.equals(e2)) の場合、2 つの要素 e1 と e2 は等しくなります。つまり 2 つのリストは、同じ要素が同じ順序で含まれている場合に等しいものとして定義されます。equals、インタフェース: Collection<E>equals、インタフェース: List<E>equals、クラス: AbstractList<E>o - この Vector と等しいかどうかを比較する ObjectObject.hashCode()、HashMappublic int hashCode()
hashCode、インタフェース: Collection<E>hashCode、インタフェース: List<E>hashCode、クラス: AbstractList<E>Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)public String toString()
toString、クラス: AbstractCollection<E>public List<E> subList(int fromIndex, int toIndex)
このメソッドでは、配列に一般的に見られるような、明示的な範囲操作は必要ありません。リストを要求するいかなる操作もリスト全体ではなく、subList ビュー上で操作することで、範囲操作として使用できます。たとえば、次のイディオムは、ある範囲の要素をリストから削除します。
list.subList(from, to).clear();
indexOf および lastIndexOf でも、同様のイディオムを作成できます。Collections クラスのアルゴリズムがすべて subList に適用できます。
バッキングリスト (すなわち、この List) が、このメソッドによって返された List を介さずに構造的に変更された場合、返された List のセマンティクスは保証されません。 (構造的な変更とは、List のサイズが変更された場合や、進行中の繰り返しにより不正な結果が生じたなどの理由で List が乱れた場合です。)
subList、インタフェース: List<E>subList、クラス: AbstractList<E>fromIndex - subList の下端点 (これを含む)toIndex - subList の上端点 (これを含まない)IndexOutOfBoundsException - 端点のインデックス値が範囲外の場合 (fromIndex < 0 || toIndex > size)IllegalArgumentException - 端点のインデックスの順番が正しくない場合 (fromIndex > toIndex)protected void removeRange(int fromIndex,
int toIndex)
fromIndex (これを含む) から toIndex (これを含まない) の範囲のインデックスを持つすべての要素をこのリストから削除します。後続の要素は左に移動します (インデックス値が減少)。この呼び出しにより、(toIndex - fromIndex) の要素数だけリストが短くなります。toIndex==fromIndex の場合、このオペレーションは何も行いません。removeRange、クラス: AbstractList<E>fromIndex - 削除する最初の要素のインデックスtoIndex - 削除する最後の要素の直後のインデックスpublic ListIterator<E> listIterator(int index)
next の最初の呼び出しによって返される最初の要素を示します。previous の最初の呼び出しは、指定されたインデックスから 1 を引いたインデックスを持つ要素を返します。
返されるリストイテレータは、フェイルファストです。
listIterator、インタフェース: List<E>listIterator、クラス: AbstractList<E>index - リストイテレータから (next 呼び出しによって) 返される最初の要素のインデックスIndexOutOfBoundsException - インデックスが範囲外の場合 (index < 0 || index > size())public ListIterator<E> listIterator()
返されるリストイテレータは、フェイルファストです。
listIterator、インタフェース: List<E>listIterator、クラス: AbstractList<E>listIterator(int) バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.