ArrayListとVectorの主な違いは、ArrayListは非同期で、複数のスレッドがArrayListに対して同時に作業できるのに対し、Vectorは同期で、複数のスレッドがVectorに対して同時に作業しないようにする点です。
Javaなどのプログラミング言語では、複数のオブジェクトを1つの単位として格納できるコレクションをサポートしています。
このようなコレクションには、ArrayListとVectorの2つがあります。
これらは、データを動的に保存するのに役立ちます。
ArrayListは非同期であるため、Vectorよりも性能が良い。
一方、Vectorは同期化されており、多くのレガシーメソッドを含んでいます。
ArrayListとは
ArrayListは、ArrayListClassを使用して実装されたデータ構造です。
このArrayListクラスは、Listインターフェイスをさらに実装しています。
これは、配列のより良い代替品です。
通常の配列は長さが固定されています。
したがって、プログラマは定義された配列のサイズより多くの要素を追加することはできません。
ArrayList を使用すると、配列のサイズを動的に変更することができます。
つまり、プログラマーは動的に要素を追加したり削除したりすることができるのです。
したがって、柔軟なデータ構造です。
ArrayListは、要素の挿入順序を保持する。
さらに、ArrayListクラスには、あらかじめ定義されたメソッドが用意されています。
また、ArrayListクラスには定義済みのメソッドが用意されており、プログラマはそれらを自分のプログラムで使用することができます。
:ArrayListプログラム
上のプログラムを見ると、”fruits “はArrayList型のオブジェクトです。
これは文字列を格納することができる。
ArrayListに要素を入れるには、addメソッドを使います。
ArrayListの2番目のインデックスにある要素はgrapeです。
removeメソッドは、ArrayListからgrapesを削除するためのメソッドです。
これで、3つの要素だけが利用可能になります。
itrはイテレータです。
これは、ArrayListを繰り返し処理するのに役立ちます。
最後に、whileループは、ArrayListの中の利用可能な要素を表示します。
ベクターとは
Vectorは、Vectorクラスで実装されたデータ構造です。
VectorクラスはListインタフェースを実装しています。
Vectorは要素の挿入順序を保持する。
これは同期化されています。
そのため、複数のスレッドが同時にVectorに対して作業することはできません。
通常、ベクター内の要素の追加、削除、更新の性能は低くなります。
図2:ベクタープログラム
上のプログラムでは、vecは文字列を格納できるVectorのオブジェクトです。
addメソッドは、vectorに新しい要素を挿入するのに役立ちます。
同様に、removeメソッドは、vectorから要素を削除するのに役立ちます。
したがって、removeメソッドに “orange “を渡すと、その要素がvectorから削除される。
en “は列挙型で、ベクトルを繰り返し処理するのに役立つ。
最後に、while ループで、vector 内の要素を表示しています。
ArrayList と Vector の違い
定義
ArrayList は動的な配列を使用して要素を格納する非同期データ構造であり、vector は動的な配列を使用して要素を格納する同期データ構造です。
これがArrayListとVectorの根本的な違いです。
パフォーマンス
ArrayList と Vector の大きな違いは、パフォーマンスです。
ArrayList は Vector よりも高速に動作します。
したがって、その性能はベクターよりも高い。
同期
ArrayListとVectorの大きな違いは、なんといっても同期です。
ArrayListは非同期であるのに対し、vectorは同期です。
エレメントをトラバースする
ArrayListがIteratorインターフェイスを使用して要素を走査するのに対し、vectorはIteratorインターフェイスまたはEnumerationインターフェイスを使用して要素を走査します。
したがって、この点も ArrayList と Vector の違いとなります。
アレイサイズ
また、ArrayListは要素数が容量を超えると現在の配列サイズの50%増しになるのに対し、vectorは要素数の合計が容量を超えると100%増し、つまり配列サイズを2倍にする。
結論
ArrayListとVectorは、どちらも動的に要素を格納することができます。
ArrayListとVectorの主な違いは、同期にあります。
ArrayListは非同期で、複数のスレッドが同時に作業できるのに対し、Vectorは同期で、複数のスレッドが同時に作業しないようにします。
したがって、ArrayListはvectorよりも高速です。