|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.util.AbstractCollection<E> java.util.AbstractList<E> java.util.Vector<E>
public class Vector<E>
Vector
クラスは、オブジェクトの可変長配列を実装します。ここには配列と同じように、整数インデックスを使ってアクセスできる要素が格納されています。しかし、Vector
のサイズは、Vector
の作成後に追加および削除されたオブジェクトを格納できるように必要に応じて増やしたり減らしたりすることができます。
各ベクトルは、capacity
と capacityIncrement
を維持することによって記憶領域の管理を最適化しようとします。capacity
は常に Vector の要素数に近い値であり、通常は要素数より大きくなります。 これは、Vector に要素が加えられるとき、Vector の記憶領域は capacityIncrement
だけ増やされるからです。多くの要素を挿入する前にアプリケーションで容量を必要な値に設定しておけば、メモリーの再配分の回数を減らすことができます。
Vector のメソッド Iterator および listIterator が返す Iterator は、「フェイルファスト」です。Iterator の作成後に、Iterator 自体の remove または add メソッド以外の方法で Vector を構造的に変更すると、Iterator は ConcurrentModificationException をスローします。したがって、並行して変更が行われると、Iterator は、将来の予測できない時点において予測できない動作が発生する危険を回避するために、ただちにかつ手際よく例外をスローします。Vector の elements メソッドが返す Enumeration は、フェイルファストではありません。
通常、非同期の並行変更がある場合、確かな保証を行うことは不可能なので、反復子のフェイルファストの動作を保証することはできません。フェイルファスト反復子は最善努力原則に基づき、ConcurrentModificationException
をスローします。したがって、正確を期すためにこの例外に依存するプログラムを書くことは誤りです。「反復子のフェイルファストの動作はバグを検出するためにのみ使用すべきです」。
このクラスは、Java 2 プラットフォーム v1.2 の時点で List
インタフェースを実装するように改良された結果、Java Collections Framework のメンバーとなりました。新しいコレクションの実装とは異なり、Vector
は同期をとります。
Collection
,
List
,
ArrayList
,
LinkedList
,
直列化された形式フィールドの概要 | |
---|---|
protected int |
capacityIncrement
Vector のサイズが Vector の容量を超えるときに自動的に増やされる量です。 |
protected int |
elementCount
Vector オブジェクト内の有効な要素数です。 |
protected Object[] |
elementData
Vector の要素が格納される配列バッファーです。 |
クラス java.util.AbstractList から継承されたフィールド |
---|
modCount |
コンストラクタの概要 | |
---|---|
Vector()
空の Vector を作成し、その内部データ配列のサイズが 10 で、その標準的な増加がゼロであるようにします。 |
|
Vector(Collection<? extends E> c)
指定されたコレクションの反復子が返した順序で、その要素を格納する Vector を作成します。 |
|
Vector(int initialCapacity)
指定された初期容量、および増加量がゼロである、空の Vector を作成します。 |
|
Vector(int initialCapacity,
int capacityIncrement)
指定された容量と増加量で空の Vector を作成します。 |
メソッドの概要 | ||
---|---|---|
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()
Vector の最初の要素 (インデックス 0 の項目) を返します。 |
|
E |
get(int index)
Vector 内の指定された位置にある要素を返します。 |
|
int |
hashCode()
Vector のハッシュコード値を返します。 |
|
int |
indexOf(Object o)
指定された要素がベクトル内で最初に検出された位置のインデックスを返します。 |
|
int |
indexOf(Object o,
int index)
指定された要素がこのベクトル内で index から順方向に検索した際に最初に検出された位置のインデックスを返します。 |
|
void |
insertElementAt(E obj,
int index)
Vector の指定された index に、指定されたオブジェクトを要素として挿入します。 |
|
boolean |
isEmpty()
Vector が要素を持たないかどうかを判定します。 |
|
E |
lastElement()
Vector の最後の要素を返します。 |
|
int |
lastIndexOf(Object o)
指定された要素がベクトル内で最後に検出された位置のインデックスを返します。 |
|
int |
lastIndexOf(Object o,
int index)
指定された要素がこのベクトル内で 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 (これを含まない) の範囲のインデックスを持つすべての要素をこの List から削除します。 |
|
boolean |
retainAll(Collection<?> c)
指定された Collection 内に保持されている、Vector 内の要素だけを保持します。 |
|
E |
set(int index,
E element)
Vector 内の指定された位置にある要素を、指定の要素で置き換えます。 |
|
void |
setElementAt(E obj,
int index)
Vector の指定された index の要素に、指定されたオブジェクトを設定します。 |
|
void |
setSize(int newSize)
Vector のサイズを設定します。 |
|
int |
size()
Vector の要素数を返します。 |
|
List<E> |
subList(int fromIndex,
int toIndex)
この List の、fromIndex (これを含む) と toIndex (これを含まない) の間の部分のビューを返します。 |
|
Object[] |
toArray()
Vector 内のすべての要素を正しい順序で保持する配列を返します。 |
|
|
toArray(T[] a)
Vector 内のすべての要素が正しい順序で格納されている配列を返します。 |
|
String |
toString()
各要素の String 表現を保持している、Vector の文字列表現を返します。 |
|
void |
trimToSize()
Vector の容量を、現在の容量にまで減らします。 |
クラス java.util.AbstractList から継承されたメソッド |
---|
iterator, listIterator, listIterator |
クラス java.lang.Object から継承されたメソッド |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
インタフェース java.util.List から継承されたメソッド |
---|
iterator, listIterator, listIterator |
フィールドの詳細 |
---|
protected Object[] elementData
Vector 内の最後の要素の後に来る配列要素は null です。
protected int elementCount
Vector
オブジェクト内の有効な要素数です。elementData[0]
から elementData[elementCount-1]
までの要素が、実際の項目となります。
protected int capacityIncrement
コンストラクタの詳細 |
---|
public Vector(int initialCapacity, int capacityIncrement)
initialCapacity
- Vector の初期容量capacityIncrement
- ベクトルがオーバーフローした際の容量の増加量
IllegalArgumentException
- 指定された初期容量が負の場合public Vector(int initialCapacity)
initialCapacity
- Vector の初期容量
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)
Vector の現在の容量が minCapacity
よりも小さい場合、elementData
フィールドに保持されているその内部データ配列をより大きなデータ配列に置き換えてその容量を増やします。新しいデータ配列のサイズは、capacityIncrement
がゼロ以下でないかぎり、元のサイズにその値を加えたものになります。capacityIncrement
がゼロ以下の場合は新しい容量は元の容量の 2 倍になります。 新しいサイズがまだ minCapacity
よりも小さい場合には、新しい容量は minCapacity
になります。
minCapacity
- 目的の最小容量public void setSize(int newSize)
null
要素が Vector の最後に追加されます。現在のサイズよりも小さい場合は、インデックス newSize
とそれ以降の要素はすべて破棄されます。
newSize
- Vector の新しいサイズ
ArrayIndexOutOfBoundsException
- 新しいサイズが負の値の場合public int capacity()
elementData
内に保持されている内部データ配列の長さ)public int size()
Collection<E>
内の size
List<E>
内の size
AbstractCollection<E>
内の size
public boolean isEmpty()
Collection<E>
内の isEmpty
List<E>
内の isEmpty
AbstractCollection<E>
内の isEmpty
true
、それ以外の場合は false
public Enumeration<E> elements()
Enumeration
オブジェクトは、Vector のすべての項目を生成します。最初に生成される項目はインデックス 0
の項目、次に生成される項目はインデックス 1
の項目、といった具合になります。
Iterator
public boolean contains(Object o)
true
を返します。つまり、ベクトルに、(o==null ? e==null : o.equals(e)) となる要素 e
が 1 つ以上含まれている場合にだけ true
を返します。
Collection<E>
内の contains
List<E>
内の contains
AbstractCollection<E>
内の contains
o
- ベクトルにあるかどうかを調べる要素
true
public int indexOf(Object o)
i
を返します。そのようなインデックスが存在しない場合は -1 を返します。
List<E>
内の indexOf
AbstractList<E>
内の indexOf
o
- 検索する要素
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 を返します。
List<E>
内の lastIndexOf
AbstractList<E>
内の lastIndexOf
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)
このメソッドは機能的に get(int)
メソッドと同じです。これは、List
インタフェースの一部です。
index
- Vector のインデックス
ArrayIndexOutOfBoundsException
- インデックスが範囲外の場合 (index < 0 || index >= size()
)public E firstElement()
0
の項目) を返します。
NoSuchElementException
- Vector が要素を持たない場合public E lastElement()
size() - 1
の要素
NoSuchElementException
- Vector が空の場合public void setElementAt(E obj, int index)
index
の要素に、指定されたオブジェクトを設定します。そのインデックスにあった要素は破棄されます。
インデックスは、0
に等しいか、それより大きい値である必要があります。また、Vector の現在のサイズより小さい値である必要があります。
このメソッドは機能的に set(int, E)
メソッドと同じです。 これは、List
インタフェースの一部です。配列の使い方により近づけるために、set
メソッドがパラメータの順序を逆にすることに注意してください。また、set
メソッドが指定された位置に格納されていた古い値を返すことにも注意してください。
obj
- コンポーネントに設定されるオブジェクトindex
- 指定するインデックス
ArrayIndexOutOfBoundsException
- インデックスが範囲外の場合 (index < 0 || index >= size()
)public void removeElementAt(int index)
index
に等しいか、それより大きいインデックスの要素は、すべて 1 つ前方のインデックスに詰められます。Vector のサイズは 1
だけ減らされます。
インデックスは、0
に等しいか、それより大きい値である必要があります。また、Vector の現在のサイズより小さい値である必要があります。
このメソッドは機能的に remove(int)
メソッドと同じです。これは、List
インタフェースの一部です。remove
メソッドが指定された位置に格納されていた古い値を返すことに注意してください。
index
- 削除されるオブジェクトのインデックス
ArrayIndexOutOfBoundsException
- インデックスが範囲外の場合 (index < 0 || index >= size()
)public void insertElementAt(E obj, int index)
index
に、指定されたオブジェクトを要素として挿入します。指定された index
に等しいか、それより大きいインデックスの要素は、すべて 1 つ後方のインデックスに詰められます。
インデックスは、0
に等しいか、それより大きい値である必要があります。また、Vector の現在のサイズに等しいか、それより小さい値である必要があります。インデックスが Vector の現在のサイズに等しい場合、新しい要素は Vector の末尾に追加されます。
このメソッドは機能的に add(int, E)
メソッドと同じです。これは、List
インタフェースの一部です。配列の使い方により適した形にするために add
メソッドがパラメータの順序を逆にすることに注意してください。
obj
- 挿入されるコンポーネントindex
- 新しいコンポーネントを挿入する位置
ArrayIndexOutOfBoundsException
- インデックスが範囲外の場合 (index < 0 || index > size()
)public void addElement(E obj)
このメソッドは機能的に add(E)
メソッドと同じです。これは、List
インタフェースの一部です。
obj
- 追加されるコンポーネントpublic boolean removeElement(Object obj)
このメソッドは機能的に remove(Object)
メソッドと同じです。これは、List
インタフェースの一部です。
obj
- 削除されるコンポーネント
true
。それ以外の場合は false
public void removeAllElements()
public Object clone()
Vector
オブジェクトの元の内部データ配列への参照を保持するわけではありません。
Object
内の clone
Cloneable
public Object[] toArray()
Collection<E>
内の toArray
List<E>
内の toArray
AbstractCollection<E>
内の toArray
Arrays.asList(Object[])
public <T> T[] toArray(T[] a)
Vector が指定された配列に余裕をもって収まる場合、つまり配列が Vector よりも要素を数多く持つ場合、Vector の末尾の直後に来る配列内の要素は null に設定されます。(これは、Vector がまったく null 要素を保持していないことを呼び出し側が認識している場合にだけ、Vector の長さを確認する際に役に立つ。)
Collection<E>
内の toArray
List<E>
内の toArray
AbstractCollection<E>
内の toArray
a
- 配列が十分な大きさを持つ場合は、Vector の要素が格納される配列。そうでない場合は、要素を格納するために同じ実行時の型の新しい配列が割り当てられる
ArrayStoreException
- a の実行時の型が、このベクトル内のすべての要素の実行時の型のスーパータイプでない場合
NullPointerException
- 指定された配列が null である場合public E get(int index)
List<E>
内の get
AbstractList<E>
内の get
index
- 返される要素のインデックス
ArrayIndexOutOfBoundsException
- インデックスが範囲外の場合 (index < 0 || index >= size()
)public E set(int index, E element)
List<E>
内の set
AbstractList<E>
内の set
index
- 置換される要素のインデックスelement
- 指定された位置に格納される要素
ArrayIndexOutOfBoundsException
- インデックスが範囲外の場合 (index < 0 || index >= size()
)public boolean add(E e)
Collection<E>
内の add
List<E>
内の add
AbstractList<E>
内の add
e
- Vector に追加される要素
true
(Collection.add(E)
で指定された場合と同様)public boolean remove(Object o)
(o==null ?get(i)==null : o.equals(get(i)))
であるもっとも小さいインデックス i を持つ要素があれば削除します。
Collection<E>
内の remove
List<E>
内の remove
AbstractCollection<E>
内の remove
o
- Vector から削除される要素 (その要素が存在する場合)
public void add(int index, E element)
List<E>
内の add
AbstractList<E>
内の add
index
- 指定の要素が挿入される位置のインデックスelement
- 挿入される要素
ArrayIndexOutOfBoundsException
- インデックスが範囲外の場合 (index < 0 || index > size()
)public E remove(int index)
List<E>
内の remove
AbstractList<E>
内の remove
index
- 削除される要素のインデックス
ArrayIndexOutOfBoundsException
- インデックスが範囲外の場合 (index < 0 || index >= size()
)public void clear()
Collection<E>
内の clear
List<E>
内の clear
AbstractList<E>
内の clear
public boolean containsAll(Collection<?> c)
Collection<E>
内の containsAll
List<E>
内の containsAll
AbstractCollection<E>
内の containsAll
c
- 要素がこの Vector に含まれているかどうかを調べるコレクション
NullPointerException
- 指定されたコレクションが null である場合AbstractCollection.contains(Object)
public boolean addAll(Collection<? extends E> c)
Collection<E>
内の addAll
List<E>
内の addAll
AbstractCollection<E>
内の addAll
c
- Vector に挿入される要素
true
NullPointerException
- 指定されたコレクションが null である場合AbstractCollection.add(Object)
public boolean removeAll(Collection<?> c)
Collection<E>
内の removeAll
List<E>
内の removeAll
AbstractCollection<E>
内の removeAll
c
- Vector から削除される要素のコレクション
ClassCastException
- このベクトルの 1 つ以上の要素の型が、指定されたコレクションと互換でない場合 (省略可能)
NullPointerException
- このベクトルに 1 つ以上の null 要素が含まれており、指定されたコレクションが null 要素をサポートしない場合 (省略可能)、または指定されたコレクションが null の場合AbstractCollection.remove(Object)
,
AbstractCollection.contains(Object)
public boolean retainAll(Collection<?> c)
Collection<E>
内の retainAll
List<E>
内の retainAll
AbstractCollection<E>
内の retainAll
c
- Vector に保持されている要素のコレクション (ほかのすべての要素は削除)
ClassCastException
- このベクトルの 1 つ以上の要素の型が、指定されたコレクションと互換でない場合 (省略可能)
NullPointerException
- このベクトルに 1 つ以上の null 要素が含まれており、指定されたコレクションが null 要素をサポートしない場合 (省略可能)、または指定されたコレクションが null の場合AbstractCollection.remove(Object)
,
AbstractCollection.contains(Object)
public boolean addAll(int index, Collection<? extends E> c)
List<E>
内の addAll
AbstractList<E>
内の addAll
index
- 指定されたコレクションの最初の要素を挿入する位置のインデックスc
- Vector に挿入される要素
true
ArrayIndexOutOfBoundsException
- インデックスが範囲外の場合 (index < 0 || index > size()
)
NullPointerException
- 指定されたコレクションが null である場合public boolean equals(Object o)
(e1==null ? e2==null : e1.equals(e2))
の場合、2 つの要素 e1
と e2
は、等しくなります。つまり、同じ順序で同じ要素を保持している場合に、2 つの List は等しいものと判定されます。
Collection<E>
内の equals
List<E>
内の equals
AbstractList<E>
内の equals
o
- Vector と同じかどうかを比較される Object
Object.hashCode()
,
Hashtable
public int hashCode()
Collection<E>
内の hashCode
List<E>
内の hashCode
AbstractList<E>
内の hashCode
Object.equals(java.lang.Object)
,
Hashtable
public String toString()
AbstractCollection<E>
内の toString
public List<E> subList(int fromIndex, int toIndex)
このメソッドは、配列に一般的に見られるような、明示的な範囲操作のための要求を不要にします。リストを要求するいかなる操作もリスト全体ではなく、subList ビュー上で操作することで、範囲操作として使用できます。たとえば、次の慣用法は、指定された範囲の要素をリストから削除します。
list.subList(from, to).clear();indexOf および lastIndexOf でも同様の慣用法を作成でき、Collections クラスのアルゴリズムがすべて subList に適用できます。
基づくリスト (つまりこの List) が、返された List を介さずに「構造的に変更」された場合、このメソッドによって返された List のセマンティクスは、保証されません。構造的な変更とは、List のサイズが変更された場合や、進行中の繰り返しにより不正な結果が生じたなどの理由で List が乱れた場合です。
List<E>
内の subList
AbstractList<E>
内の subList
fromIndex
- subList の下端点 (これを含む)toIndex
- subList の上端点 (これを含まない)
IndexOutOfBoundsException
- 端点のインデックス値が範囲外の場合 (fromIndex < 0 || toIndex > size)
IllegalArgumentException
- 端点のインデックスの順番が正しくない場合 (fromIndex > toIndex)
protected void removeRange(int fromIndex, int toIndex)
AbstractList<E>
内の removeRange
fromIndex
- 削除する最初の要素のインデックスtoIndex
- 削除する最後の要素の直後のインデックス
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。