2016-05-19 8 views
1

Stack Stackクラスは、JDKで(関係)でVectorクラスを拡張している理由を、次に、スタックがpush() & pop()操作で動作すると仮定Vectorはありませんが、それはベクトルを拡張するので、私は、スタック上add()remove()操作を行うことができますよ。JDKでStackがVectorを拡張するのはなぜですか?

私はむしろVectorクラスを拡張すると思う、スタッククラスは、構成としてVectorクラスを使用する必要があります。

+1

類似のディスカッション:https://community.oracle.com/thread/1156973?start=0&tstart=0 – yshavit

+0

はい、リンクには必要なものが含まれています。 –

答えて

3

時代遅れのクラス

両方StackVectorは、Javaの最初のリリースに含まれていました。当時のインターネットの狂乱のために、Javaはその時間より前に市場に突入した。

日付時刻クラスなど、最も初期のバージョンのJavaにバンドルされているクラスの中には、よく考えられていないものがありました。彼らは、後でオープンソースのプロジェクトや業界コンソーシアムプロジェクトを通じてJAva Community Processを介して作成されたものなどの図書館と同様に、ピアレビューと公衆の監視を受けていませんでした。

Java Collections framework

のJavaコレクションフレームワーク

は、これらのクラスの両方に取って代わります。同様に、フレーム java.timeは、 java.util.Date/ .Calendarのような古い日時クラスに取って代わります。古いクラスは、既存のアプリケーションとの下位互換性のためにJavaのままですが、新しいコードでは使用しないでください。

Stackクラスのドキュメントでは、Dequeインターフェイスの実装を代わりに使用する必要があることを明確に示しています。

+0

あなたの答えをありがとう、私は[なぜスタック拡張ベクトルですか?](http://community.oracle.com/thread/1156973?start=0&tstart=0)に関するより良い議論を発見しました。 –

関連する問題