[解決済み] なぜJavaのVector(およびStack)クラスは時代遅れ、または非推奨とされているのですか?
質問
なぜJava Vectorはレガシークラス、時代遅れ、非推奨とされているのですか?
並行処理を行う場合、その使用は有効ではないのですか?
また、手動でオブジェクトを同期させることなく、単にスレッドセーフなコレクションを使用したいだけで、基盤となる配列の新しいコピーを作成する必要がない場合(たとえば
CopyOnWriteArrayList
を使うのは問題ないのでしょうか?
Vector
?
はどうでしょうか?
Stack
のサブクラスである
Vector
その代わりに何を使えばいいのでしょうか?
どのように解決するのですか?
Vector
は、個々の操作で同期をとります。これは、ほとんどの場合、やりたいことではありません。
一般的に
シーケンス全体
の操作です。個々の操作を同期させることは、安全性に欠けます。
Vector
例えば、他の誰かが同時にコレクションを変更するのを避けるために、ロックを解除する必要があります。
ConcurrentModificationException
が、より遅くなる(一度で十分なのに、なぜ何度もロックを解除するのか)のでしょうか?)
もちろん、必要ないときにもロックしてしまうというオーバーヘッドもあります。
基本的に、ほとんどの状況において、同期化には非常に欠陥のあるアプローチです。というのも
ブライアン・ヘンク氏
のような呼び出しを使用してコレクションを装飾することができます。
Collections.synchronizedList
- というのは
Vector
は、quot;resized array" コレクションの実装と "synchronize every operation" ビットの両方を組み合わせたもので、これも設計が悪い例です。
については
Stack
に相当するもので、私なら
Deque
/
ArrayDeque
を開始します。
関連
-
VMの初期化中にエラーが発生しました java/lang/NoClassDefFoundError: java/lang/Object
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] リフレクションとは何か、なぜ有用なのか?
-
[解決済み] Javaで配列を宣言し、初期化する方法は?
-
[解決済み] Java内部クラスと静的ネストされたクラス
-
[解決済み] なぜゲッターとセッター/アクセッサーを使うのですか?
-
[解決済み] なぜJavaにはtransientフィールドがあるのですか?
-
[解決済み] メソッドを廃止または非推奨としてマークする方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
スタイルシートとして解釈されるリソースが、MIMEタイプtext/htmlで転送される。
-
springboot project MIMEタイプ text/htmlで転送された静的ファイルを読み込む。
-
Java Exceptionが発生しました エラー解決
-
この行に複数のマーカーがある - HttpServletResponseが型エラーに解決できない
-
undefinedeclipse エラー。この行に複数のアノテーションが見つかりました: - 文字列を型解決に解決できない
-
をインスタンス化することができません。
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] ArrayListとVectorの違いは何ですか?
-
[解決済み] JavaによるArrayListの交差と和集合