ArrayListとVectorの違いは何ですか

目次:

Anonim

NS 主な違い ArrayListとVectorの間には、 ArrayListは同期されておらず、Vectorが同期されている間、複数のスレッドがArrayListで同時に作業できるようにし、複数のスレッドが同時にベクターで作業することを回避します。

Javaなどのプログラミング言語はコレクションをサポートしているため、複数のオブジェクトを1つのユニットとして格納できます。そのような2つのコレクションは、ArrayListとVectorです。データを動的に保存するのに役立ちます。 ArrayListは同期されていないため、ArrayListのパフォーマンスはVectorよりも優れています。一方、vectorは同期されており、多くのレガシーメソッドが含まれています。

ArrayList、Vector

ArrayListとは何ですか

ArrayListは、ArrayListClassを使用して実装されるデータ構造です。このArrayListクラスは、Listインターフェイスをさらに実装します。これは、アレイのより良い代替手段です。通常の配列の長さは固定されています。したがって、プログラマーは定義された配列サイズより多くの要素を追加することはできません。 ArrayListを使用すると、配列サイズを動的に変更できます。言い換えれば、プログラマーは要素を動的に追加または削除できます。したがって、これは柔軟なデータ構造です。 ArrayListは、要素の挿入順序を維持します。さらに、ArrayListクラスで使用可能な事前定義されたメソッドがあります。プログラマーは自分のプログラムでそれらを使用できます。

図1:ArrayListプログラム

上記のプログラムを見ると、「fruits」はArrayList型のオブジェクトです。文字列を保存できます。 addメソッドは、ArrayListに要素を挿入するのに役立ちます。 2の要素NS ArrayListのインデックスはブドウです。 removeメソッドは、ArrayListから「ブドウ」を削除するのに役立ちます。現在、利用できる要素は3つだけです。 「itr」はイテレータです。 ArrayListを反復処理するのに役立ちます。最後に、whileループは、ArrayListで使用可能な要素を出力します。

ベクターとは

Vectorは、Vectorクラスを使用して実装されたデータ構造です。 Vectorクラスは、Listインターフェイスを実装します。ベクトルは、要素の挿入順序を維持します。同期されます。したがって、複数のスレッドがベクトルで同時に機能することはできません。通常、ベクター内の要素の追加、削除、更新のパフォーマンスは低くなります。

図2:ベクタープログラム

上記のプログラムでは、「vec」は文字列を格納できるVectorのオブジェクトです。 addメソッドは、新しい要素をベクターに挿入するのに役立ちます。同様に、removeメソッドは、ベクトルから要素を削除するのに役立ちます。したがって、「オレンジ」をremoveメソッドに渡すと、その特定の要素がベクターから削除されます。 「en」は列挙型であり、ベクトルを反復処理するのに役立ちます。最後に、whileループは、ベクトルで使用可能な要素を出力します。

ArrayListとVectorの違い

意味

ArrayListは、要素を格納するために動的配列を使用する非同期データ構造であり、vectorは、要素を格納するために動的配列を使用する同期データ構造です。したがって、これがArrayListとVectorの根本的な違いです。

パフォーマンス

パフォーマンスは、ArrayListとVectorの主な違いです。 ArrayListはVectorよりも高速に動作します。したがって、そのパフォーマンスはベクトルよりも高くなります。

同期

とりわけ、同期はArrayListとVectorの主な違いです。 ArrayListは同期されていませんが、vectorは同期されています。

要素をトラバースする

ArrayListはIteratorインターフェースを使用して要素をトラバースしますが、vectorはIteratorインターフェースまたはEnumerationインターフェースを使用して要素をトラバースします。したがって、これはArrayListとVectorのもう1つの違いです。

配列サイズ

結論

ArrayListとVectorはどちらも、要素を動的に格納できます。 ArrayListとVectorの主な違いは、同期にあります。 ArrayListは同期されておらず、Vectorが同期されている間、複数のスレッドが同時に作業できるようにし、複数のスレッドが同時に作業することを回避します。したがって、ArrayListはvectorよりも高速です。

リファレンス:

1.「JavaのArrayList–Javatpoint」。 Www.javatpoint.com、ここから入手可能2。シン、チャイタニヤ、Jパディリャ。 「Javaのベクトル。」 Beginnersbook.com、2017年8月8日、こちらから入手できます。

ArrayListとVectorの違いは何ですか