この包括的なガイドでは、効率的なキーと値のペアの保存と管理のための堅牢なデータ構造である Java の HashMap
について説明します。 基本的な方法について説明し、理解を確実にするために実践的な例を示します。
HashMap を理解する
HashMap
はデータをキーと値のペアとして保存し、put
、get
、remove
などのコア操作に (平均して) 一定時間の複雑さを提供します。 主な利点は次のとおりです:
- 一意のキー: 各キーは一意である必要があります。値は重複する可能性があります。
- 多彩なデータ型: キーと値は任意のオブジェクト型にできます。
-
パッケージの場所:
java.util
パッケージ内にあります。 -
Null の処理:
null
をキーと値の両方として受け入れます。
例:
import java.util.HashMap; public class HashMapDemo { public static void main(String[] args) { HashMap<Integer, String> myMap = new HashMap<>(); // Adding entries myMap.put(1, "Apple"); myMap.put(2, "Banana"); myMap.put(3, "Cherry"); // Retrieving a value System.out.println(myMap.get(1)); // Output: Apple } }
ハッシュマップの作成
HashMap
コンストラクターは簡単です:
HashMap<KeyType, ValueType> mapName = new HashMap<>();
例:
HashMap<String, Integer> wordCounts = new HashMap<>();
ここで、String
はキーのタイプを表し、Integer
は値のタイプを表します。
必須の HashMap メソッド
頻繁に使用される HashMap
メソッドを詳しく見てみましょう:
1. put(K key, V value)
- 機能: キーと値のペアを追加します。キーが存在する場合、値が更新されます。
- 例:
import java.util.HashMap; public class HashMapDemo { public static void main(String[] args) { HashMap<Integer, String> myMap = new HashMap<>(); // Adding entries myMap.put(1, "Apple"); myMap.put(2, "Banana"); myMap.put(3, "Cherry"); // Retrieving a value System.out.println(myMap.get(1)); // Output: Apple } }
2. get(Object key)
-
機能: 指定されたキーに関連付けられた値を取得します。キーが存在しない場合は、
null
を返します。 - 例:
HashMap<KeyType, ValueType> mapName = new HashMap<>();
3. getOrDefault(Object key, V defaultValue)
-
機能: 値を取得します。キーが見つからない場合は、
defaultValue
. を返します。
- 例:
HashMap<String, Integer> wordCounts = new HashMap<>();
4. containsKey(Object key)
- 機能: マップに指定されたキーが含まれているかどうかを確認します。
- 例:
HashMap<Integer, String> myMap = new HashMap<>(); myMap.put(1, "Apple"); myMap.put(2, "Banana"); myMap.put(1, "Orange"); // Updates value for key 1 System.out.println(myMap); // Output: {1=Orange, 2=Banana}
5. containsValue(Object value)
- 機能: マップに指定された値が含まれているかどうかを確認します。
- 例:
System.out.println(myMap.get(1)); // Output: Orange System.out.println(myMap.get(4)); // Output: null
6. remove(Object key)
-
機能: 指定されたキーのエントリを削除し、その値 (見つからない場合は
null
) を返します。 - 例:
System.out.println(myMap.getOrDefault(4, "Default")); // Output: Default
7. putIfAbsent(K key, V value)
- 機能: キーがまだ存在しない場合にのみ、キーと値のペアを追加します。
- 例:
System.out.println(myMap.containsKey(1)); // Output: true System.out.println(myMap.containsKey(4)); // Output: false
8. replace(K key, V value)
- 機能: キーが存在する場合にのみ、キーの値を置き換えます。
- 例:
System.out.println(myMap.containsValue("Orange")); // Output: true System.out.println(myMap.containsValue("Grape")); // Output: false
9. keySet()
-
機能: マップ内のすべてのキーの
Set
を返します。 - 例:
System.out.println(myMap.remove(1)); // Output: Orange System.out.println(myMap); // Output: {2=Banana}
10. values()
-
機能: マップ内のすべての値の
Collection
を返します。 - 例:
myMap.putIfAbsent(3, "Cherry"); // No change if key 3 exists System.out.println(myMap);
11. entrySet()
-
機能: すべてのキーと値のペア (
Set
) のMap.Entry
を返します。 - 例:
myMap.replace(2, "Mango"); System.out.println(myMap);
12. compute(K key, BiFunction remappingFunction)
- 機能: 提供された関数を使用して値を更新します。
-
例: (
BiFunction
実装が必要)
import java.util.HashMap; public class HashMapDemo { public static void main(String[] args) { HashMap<Integer, String> myMap = new HashMap<>(); // Adding entries myMap.put(1, "Apple"); myMap.put(2, "Banana"); myMap.put(3, "Cherry"); // Retrieving a value System.out.println(myMap.get(1)); // Output: Apple } }
13. merge(K key, V value, BiFunction remappingFunction)
- 機能: 関数を使用して、新しい値と既存の値を結合します。
-
例: (
BiFunction
実装が必要)
HashMap<KeyType, ValueType> mapName = new HashMap<>();
総合的な例: 単語頻度分析
この例では、単語の頻度をカウントするための HashMap
を紹介します。
HashMap<String, Integer> wordCounts = new HashMap<>();
結論
HashMap
は基本的な Java データ構造であり、効率的なキーと値のペアの管理を提供します。そのメソッドをマスターすると、単純なデータ検索から高度なデータ操作タスクまで、さまざまなプログラミングの課題に取り組むことができるようになります。 HashMap
をプロジェクトに組み込んで、そのパワーと効率を活用してください。
以上がJavaでHashmapを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、2025年の上位4つのJavaScriptフレームワーク(React、Angular、Vue、Svelte)を分析し、パフォーマンス、スケーラビリティ、将来の見通しを比較します。 強力なコミュニティと生態系のためにすべてが支配的なままですが、彼らの相対的なポップ

この記事では、リモートコードの実行を可能にする重大な欠陥であるSnakeyamlのCVE-2022-1471の脆弱性について説明します。 Snakeyaml 1.33以降のSpring Bootアプリケーションをアップグレードする方法は、このリスクを軽減する方法を詳述し、その依存関係のアップデートを強調しています

node.js 20は、V8エンジンの改善、特により速いガベージコレクションとI/Oを介してパフォーマンスを大幅に向上させます。 新機能には、より良いWebセンブリのサポートと洗練されたデバッグツール、開発者の生産性とアプリケーション速度の向上が含まれます。

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します

この記事では、キュウリの手順間でデータを共有する方法、シナリオコンテキスト、グローバル変数、引数の合格、およびデータ構造を比較する方法を調べます。 簡潔なコンテキストの使用、記述など、保守性のためのベストプラクティスを強調しています

この記事では、Lambda式、Streams API、メソッド参照、およびオプションを使用して、機能プログラミングをJavaに統合することを調べます。 それは、簡潔さと不変性を通じてコードの読みやすさと保守性の改善などの利点を強調しています

大規模な分析データセットのオープンテーブル形式であるIcebergは、データの湖のパフォーマンスとスケーラビリティを向上させます。 内部メタデータ管理を通じて、寄木細工/ORCの制限に対処し、効率的なスキーマの進化、タイムトラベル、同時wを可能にします


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ホットトピック









