Java map.get(key) - 自動的にput(key)を行い、keyが存在しない場合はreturnする?
2023-10-11 07:06:13
質問
次のパターンにうんざりしています。
value = map.get(key);
if (value == null) {
value = new Object();
map.put(key, value);
}
この例は、多次元構造を表現するためにマップをネストさせたときに書かなければならない余分なコードの表面を削ったにすぎません。
これを回避するためにどこかに何かが存在すると確信していますが、ググっても関連するものは見つかりませんでした。何か提案はありますか?
どのように解決するのですか?
その
java.util.concurrent.ConcurrentMap
そして、Java 8からは
Java.util.Map
があります。
putIfAbsent(K key, V value)
は、keyにマップされた値を返すか、与えられた値と、keyにマップされた値がない場合はnullを挿入します。
もし、値の遅延評価が必要であれば
computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction)
関連
-
[解決済み] return, return None, and no return at all?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] Javaで配列を宣言し、初期化する方法は?
-
[解決済み] Java内部クラスと静的ネストされたクラス
-
[解決済み] Javaクラスにおけるcanonical name、simple name、class nameの違いは何ですか?
-
[解決済み] POSTとPUT HTTP REQUESTの違いは何ですか?
-
[解決済み] 辞書のキーが利用できない場合、デフォルト値を返す
-
[解決済み] RESTfulな「PUT」操作は何かを返すべき...。
-
[解決済み】HTTPのPOSTとPUTの違いは何ですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
NullPointerException - java.lang.
-
ブートレイヤーの初期化中にエラーが発生しました java.lang.module.FindException: モジュールが見つかりません
-
ApplicationContextの起動エラーです。条件レポートを表示するには、アプリケーションを'de'で再実行します。
-
無効なメソッド宣言
-
SpringBoot 起動エラー java.nio.charset.MalformedInputException: 入力長 = 2 解決
-
Javaがテキストファイルを読み込む
-
CertificateException: XXXに一致するサブジェクトの代替DNS名が見つかりません 解決策
-
春ブート複数のデータソースの管理(atomikos)同じサーバーホスト上の複数のプロジェクトを開始する複数のJava - jarのエラーソリューション
-
Java の double データ型における 0.0 と -0.0 の問題
-
アクセス制限の解決方法: ---- in Java