HashMapが正しく動作しないことがあります。原因を教えてください。

HashMapが正しく動作しないことがあります。原因を教えてください。
java.utilパッケージにあるCollectionインタフェースやMapインタフェースを実装したクラス(以下、コレクションクラス)の一部(ArrayList、HashMap、HashSetなど)は、同期化機構を実装していません。このため、複数のスレッドから同一のコレクションクラスにアクセスして、データの追加や削除などの操作を行うと、内部データに矛盾が発生します。その結果として、システム異常を引き起こす場合があります。複数のスレッドから、コレクションクラスを操作する場合は、以下のいずれかの処置を行ってください。
  • コレクションクラスオブジェクトをカプセル化し、同期処理機能をもつクラスを定義する。

  • コレクションクラスを拡張し、同期処理を行うメソッドを定義する。

  • CollectionsクラスのsynchronizedXXXメソッドを使って、コレクションクラスをラッピングする。

  • VectorやHashtableなど同期化機構を持つクラスに置き換える。

詳細については、JDKドキュメンテーションのjava.utilパッケージを参照してください。

製品・サービス区分 Interstage
製品・サービス情報
対象製品 Interstage Application Server
バージョン V9, V8, V7, V6, V5, V4, V3, V2
プラットフォーム Windows, Solaris, Linux
アンサー種別 運用/保守
このページの先頭へ