Java API の
Vector は AbstractList のサブクラスであり、Stack は Vector のサブクラスです。 Java Collections Framework は Java 2 で導入されました。以前は、Vector クラスや Stack クラスなど、いくつかのデータ構造がサポートされていました。これらのクラスは Java Collections Framework に適合するように再設計されましたが、古いスタイルのメソッドはすべて
に対して保持されます。
互換性。
Vector は、ベクトルにアクセスして変更するための同期メソッドが含まれていることを除いて、ArrayList と同じです。同期メソッドは、ベクトルが 2 つ以上のスレッドによって同時にアクセスおよび変更された場合に、データの破損を防ぐことができます。同期を必要としない多くのアプリケーションでは、Vector を使用するよりも ArrayList を使用する方が効率的です。
Vector クラスは、AbstractList クラスを拡張します。また、以下の図に示すように、Java 2 より前に定義された元の Vector クラスに含まれるメソッドも含まれています。
上の図の UML 図にリストされている Vector クラスのメソッドのほとんどは、List インターフェイスのメソッドと似ています。これらのメソッドは、Java Collections Framework より前に導入されました。たとえば、addElement(Object element) は、addElement メソッドが同期される点を除いて、add(Object element) メソッドと同じです。同期が必要ない場合は、ArrayList クラスを使用します。 Vector よりもはるかに高速に動作します。
elements() メソッドは Enumeration を返します。 Enumeration インターフェースは Java 2 より前に導入され、Iterator インターフェースに置き換えられました。 Vector は、Java 2 より前の Java のサイズ変更可能な配列実装であったため、Java レガシー コードで広く使用されています。
Java Collections Framework では、以下の図に示すように、Stack は Vector の拡張機能として実装されます。
Stack クラスは Java 2 より前に導入されました。上の図に示されているメソッドは Java 2 より前に使用されていました。empty() メソッドは isEmpty と同じです()。 peek() メソッドは、スタックの最上位にある要素を削除せずに調べます。 pop() メソッドは、スタックから最上位の要素を削除して返します。 push(Object element) メソッドは、指定された要素をスタックに追加します。 search(Object element) メソッドは、指定された要素がスタック内にあるかどうかを確認します。
以上がベクタークラスとスタッククラスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。