[解決済み] ConcurrentHashMapはなぜNullキーやNull値を防ぐことができるのですか?
2022-04-27 05:51:21
質問
のJavaDocは
ConcurrentHashMap
にはこう書いてある。
のように
Hashtable
とは異なりHashMap
このクラスは ない 許可するnull
をキーまたは値として使用することができます。
私の質問です。なぜですか?
2つ目の質問 なぜ
Hashtable
は null を許可していますか?
データの保存にHashMapを多用するようになりました。しかし
ConcurrentHashMap
NullPointerExceptionsで何度かトラブルに見舞われました。
解決方法は?
の作者から
ConcurrentHashMap
自身(Doug Lea)
:
ConcurrentMapでNullが許されない主な理由は以下の通りです。 (ConcurrentHashMaps, ConcurrentSkipListMaps) は、曖昧な部分が 非同期マップではギリギリ許容できるかもしれませんが、それは無理です。 に対応することができます。主なものは、もし
map.get(key)
は以下を返します。null
ということです。 に明示的にマッピングされているかどうかを検出することはできません。null
対して、キーがない場合は がマッピングされます。非同期マップの場合、これを確認するにはmap.contains(key)
しかし、同時実行型では、マップが変更されている可能性があります。 を呼び出す。
関連
-
[解決済み】JavaでMap値をインクリメントする最も効率的な方法
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] リフレクションとは何か、なぜ有用なのか?
-
[解決済み] Javaはパラメータのデフォルト値をサポートしていますか?
-
[解決済み] ランダムな文字列を使用するこのコードは、なぜ "hello world" と表示されるのですか?
-
[解決済み] なぜゲッターとセッター/アクセッサーを使うのですか?
-
[解決済み] なぜJavaにはtransientフィールドがあるのですか?
-
[解決済み] ConcurrentHashMapに対するConcurrentHashSetが存在しない理由
-
[解決済み] ConcurrentHashMapとCollections.synchronizedMap(Map)の違いは何ですか?
-
[解決済み] なぜJava 8のOptionalは引数で使ってはいけないのか
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
java.util.NoSuchElementException 原因解析と解決方法
-
Java Error スレッド "AWT-EventQueue-0" で例外発生 java.lang.
-
IllegalArgumentException この例外を解決する方法
-
javaの実行中に「javaの例外が発生しました」と表示された場合はどうすればよいですか?
-
JQuery DataTable 详解
-
eclipseにプロジェクトをインポートした後、Editorにmain typeが含まれない問題
-
eclipse の実行時に java 仮想マシンが見つからなかった
-
[オリジナル】java学習ノート【II】よくあるエラー クラスパス上のクラスファイルが見つからない、またはアクセスできない場合
-
java.lang.NoClassDefFoundError: org.apache.jasper.el.ELContextImpl クラスを初期化できませんでした。
-
ブラウザでの大容量ファイルスライスアップロード(Javaサーバサイド実装)