ホームページ Java &#&チュートリアル JavaでのMapの使い方を詳しく解説

JavaでのMapの使い方を詳しく解説

Jan 19, 2017 am 10:40 AM
java map

Map の概要

キーを値にマップするオブジェクト。マップには重複したキーを含めることはできません。各キーは最大 1 つの値にのみマップできます。このインターフェイスは、インターフェイスではなく完全に抽象クラスである Dictionary クラスを置き換えます。

Map インターフェースには 3 つのコレクション ビューがあり、マップの内容をキー セット、値セット、またはキーと値のマッピング関係セットの形式で表示できます。マッピング順序は、イテレータがマップされたコレクション ビュー上でその要素を返す順序として定義されます。 TreeMap クラスなど、一部のマッピング実装は順序を明示的に保証できますが、HashMap クラスなど、他のマッピング実装は順序を保証しません。

注: 可変オブジェクトをマップキーとして使用する場合は注意が必要です。オブジェクトがマップ内のキーである場合、等号比較に影響を与える方法でオブジェクトの値が変更された場合、マップの動作は未定義になります。この禁止の特殊なケースは、マップ自体をキーとして含めることを禁止することです。マップにはそれ自体を値として含めることができますが、注意してください。このようなマップでは、equals メソッドと hashCode メソッドは明確に定義されなくなりました。

Map インターフェイス:

Map は、キーと値のマッピングを提供します。マップに同じキーを含めることはできず、各キーは 1 つの値のみをマップできます。 Map インターフェイスは、3 種類のセット ビューを提供します。Map のコンテンツは、キー セットのセット、値セットのセット、またはキーと値のマッピングのセットと見なすことができます。

Hashtableクラス

HashtableはMapインターフェースを継承し、キーと値のマッピングのハッシュテーブルを実装します。 null 以外の任意のオブジェクトをキーまたは値として使用できます。

データを追加するには put(key, value) を使用し、データを削除するには get(key) を使用します。これら 2 つの基本操作の時間コストは一定です。ハッシュテーブルは、初期容量と負荷率という 2 つのパラメータを通じてパフォーマンスを調整します。通常、デフォルトの負荷係数 0.75 を使用すると、時間とスペースのバランスがより良くなります。負荷率を増やすとスペースを節約できますが、それに対応する検索時間が増加し、get や put などの操作に影響します。

ハッシュテーブルを使用する簡単な例は次のとおりです。ハッシュテーブルに 1、2、3 を入力します。それらのキーはそれぞれ「one」、「two」、「three」です。 2 などの数値には、対応するキーを使用します:

Hashtable numbers = new Hashtable(); 
numbers.put(“one”, new Integer(1)); 
numbers.put(“two”, new Integer(2)); 
numbers.put(“three”, new Integer(3));
ログイン後にコピー

キーとしてのオブジェクトはハッシュ関数を計算することによって対応する値の位置を決定するため、キーとしてのオブジェクトはすべて hashCode メソッドと等しいメソッドを実装する必要があります。 hashCode メソッドと equals メソッドは、ルート クラス Object を継承します。カスタム クラスをキーとして使用する場合、ハッシュ関数の定義に従って、2 つのオブジェクトが同じである場合、つまり obj1.equals( obj2)=true の場合、それらのハッシュコードは同じである必要がありますが、2 つの異なるオブジェクトのハッシュコードが同じである場合、この現象は競合と呼ばれます。ハッシュ テーブルの操作にかかる時間のオーバーヘッドが増加するため、ハッシュ テーブルの操作を高速化するために、明確に定義された hashCode() メソッドを定義するようにしてください。

同じオブジェクトに異なる hashCode がある場合、ハッシュ テーブルの操作で予期しない結果が生じます (予想される get メソッドが null を返す)。この問題を回避するには、1 つのことだけを覚えておく必要があります。それは、equals メソッドと hashCode をオーバーライドすることです。メソッドを 1 つだけ書くのではなく、同時に実行します。

ハッシュテーブルは同期です。


HashMap クラス

HashMap は Hashtable に似ていますが、HashMap が非同期で null、つまり null 値と null キーを許可する点が異なります。ただし、HashMap をコレクションとして扱う場合 (values() メソッドはコレクションを返すことができます)、その反復サブオペレーションの時間オーバーヘッドは HashMap の容量に比例します。したがって、反復操作のパフォーマンスが非常に重要な場合は、HashMap の初期容量を高く設定しすぎたり、負荷率を低く設定しすぎたりしないでください。


WeakHashMap クラス


WeakHashMap は、キーへの「弱参照」を実装する改良された HashMap で、キーが外部から参照されなくなった場合、そのキーは GC によってリサイクルできます。


上記は Java Map インターフェイスの概要であり、Java プログラミングを学習する学生は参照できます。

Java での Map の使用法と関連記事の詳細な説明については、PHP 中国語 Web サイトに注目してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Java Map のパフォーマンス最適化が明らかに: データ操作をより高速かつ効率的に Java Map のパフォーマンス最適化が明らかに: データ操作をより高速かつ効率的に Feb 20, 2024 am 08:31 AM

JavaMap は、Java 標準ライブラリで一般的に使用されるデータ構造であり、キーと値のペアの形式でデータを格納します。 Map のパフォーマンスは、アプリケーションの実行効率にとって非常に重要です。Map のパフォーマンスが低いと、アプリケーションの実行が遅くなったり、クラッシュしたりする可能性があります。 1. 適切な Map 実装を選択します。Java には、HashMap、TreeMap、LinkedHashMap などのさまざまな Map 実装が用意されています。各 Map 実装には独自の長所と短所があるため、Map 実装を選択するときは、アプリケーションの特定のニーズに基づいて適切な実装を選択する必要があります。 HashMap: HashMap は最も一般的に使用される Map 実装であり、ハッシュ テーブルを使用してデータを保存し、挿入、削除、検索の速度が速くなります。

Java Map の公開: 高速データ アクセスのためのヒントと戦略 Java Map の公開: 高速データ アクセスのためのヒントと戦略 Feb 19, 2024 pm 06:21 PM

JavaMap は、開発者がデータを迅速に保存および取得できるようにするキーと値のペアベースのデータ構造です。 Map のキーには任意のオブジェクトを指定でき、値には任意のタイプのデータを指定できます。マップ内の各キーには最大 1 つの値しか関連付けることができません。同じキーに複数の値が設定されている場合は、最後に設定された値のみが保持されます。 Map には主に 2 つの実装があります。 HashMap: ハッシュ テーブルを使用してキーと値のペアを格納します。 HashMap のパフォーマンスはハッシュ テーブルの実装方法に依存し、ほとんどの場合、HashMap の方が TreeMap よりも優れたパフォーマンスを発揮します。 TreeMap: 赤黒ツリーを使用してキーと値のペアを保存します。 TreeMap のパフォーマンスは HashMap と似ていますが、場合によっては TreeMap のパフォーマンスが劣る場合があります。

Java Map の謎を解く: トラバーサルのためのシンプルでわかりやすいガイド Java Map の謎を解く: トラバーサルのためのシンプルでわかりやすいガイド Feb 20, 2024 pm 12:00 PM

1. 概要 マップは Java コレクション フレームワークのメンバーであり、キーと値のペアの形式で要素を格納し、データの迅速な取得と変更を可能にします。その強力な機能と幅広い用途のため、マップ トラバーサル メソッドを習得することは Java プログラマーにとって必須のスキルです。 2. トラバース方法 Map ではさまざまなトラバース方法が用意されており、それぞれに長所と短所があり、ニーズに応じて選択できます。 3.keySet() は keySet() メソッドをトラバースして、Map 内のすべてのキーのコレクションを返します。イテレータまたは拡張 for ループを通じてキーをトラバースして、対応する値を取得できます。 // keySet() を使用して MapMapmap=newHashMap();map を走査します。

Java Map の高度なスキル: 意外と知られていない知識をマスターし、プログラミング スキルを向上させます Java Map の高度なスキル: 意外と知られていない知識をマスターし、プログラミング スキルを向上させます Feb 19, 2024 pm 12:33 PM

Map インターフェイスの概要 Map インターフェイスは、Java コレクション フレームワークでキーと値のペアを格納するために使用されるデータ構造です。これにより、キーを使用して、関連する値を検索および取得できます。 Map インターフェイスは、put()、get()、remove()、containsKey()、containsValue()、size()、isEmpty() など、多くの便利なメソッドを提供します。 Map の実装 Java で最も一般的に使用される Map 実装は、HashMap と TreeMap です。 HashMap は、キーのハッシュ値を計算することで値を迅速に検索して取得するハッシュ テーブル ベースの Map 実装です。 TreeMap は、キーを昇順または降順に並べ替える、赤黒ツリーに基づく Map 実装です。

上級者に必須のJava Mapの本質をマスターする 上級者に必須のJava Mapの本質をマスターする Feb 19, 2024 pm 06:00 PM

JavaMap は、キーを使用して値を保存および取得できるデータ構造です。マップ内のキーは一意であるため、同じキーに 2 つの値を保存することはできません。マップ内の値は、他のマップを含む任意のオブジェクトにすることができます。 Java ではマップは多くの用途に使用されます。たとえば、マップを使用して、ユーザー ID とパスワード、製品 ID と価格、またはファイル名とファイルの内容を保存できます。マップは、アプリケーション内に構成設定を保存するのにも最適です。 Java には、HashMap、TreeMap、LinkedHashMap の 3 つの組み込み Map 実装があります。 HashMap はハッシュ テーブルに基づく Map 実装であり、最も広く使用されている Map 実装です。ツリーマップは以下に基づいています

エンタープライズ アプリケーションにおける Java Map: 実際のプロジェクトにおける Java Map の強力な役割を探る エンタープライズ アプリケーションにおける Java Map: 実際のプロジェクトにおける Java Map の強力な役割を探る Feb 19, 2024 pm 01:27 PM

JavaMap は、キーと値のペアを使用してデータを保存できるデータ構造です。キーは一意ですが、値は任意のタイプのデータにすることができます。 Map は、HashMap、TreeMap、ConcurrentHashMap など、さまざまな方法で実装できます。エンタープライズ レベルのアプリケーションでは、マップをさまざまな目的に使用できます。たとえば、マップを次の目的で使用できます。 名前、電子メール アドレス、パスワードなどのユーザー データを保存します。名前、価格、説明などの製品データを保存します。顧客の名前、住所、購入した商品などの注文データを保存します。最近アクセスした Web ページやデータベース クエリ結果などのキャッシュ データを保存します。マップは、複雑なデータ構造を保存するのに最適です。たとえば、「Ma」を使用できます。

Java Map の拡張とカスタマイズ: カスタマイズのニーズを満たす独自のデータ構造を作成します。 Java Map の拡張とカスタマイズ: カスタマイズのニーズを満たす独自のデータ構造を作成します。 Feb 19, 2024 pm 09:50 PM

JavaMap は、さまざまなアプリケーション シナリオで使用できる非常に便利なデータ構造です。ただし、新しい機能の追加、走査順序の変更、カスタム シリアライザーの作成など、特定のニーズを満たすためにマップを拡張またはカスタマイズする必要がある場合があります。この記事では、カスタマイズのニーズを満たす独自のデータ構造を作成できるように、JavaMap を拡張およびカスタマイズする方法を紹介します。 1. JavaMap の拡張 JavaMap を拡張する最も簡単な方法は、java.util.Map インターフェースを継承する新しいクラスを作成することです。この新しいクラスは、新しいメソッドまたはプロパティを追加でき、Map インターフェイスのメソッドをオーバーライドすることもできます。たとえば、新しい Map クラスを作成し、キーと値のペアの合計を計算する新しいメソッドを追加できます。

Java Mapの魅力を探り、データ処理の問題を解決する Java Mapの魅力を探り、データ処理の問題を解決する Feb 19, 2024 pm 07:03 PM

マップの説明 マップは、キーと値のペアを格納できるデータ構造であり、キーは一意であり、値は任意のタイプのオブジェクトにすることができます。 Map インターフェイスは、キーと値のペアを保存および取得するためのメソッドを提供し、マップ内のキーと値のペアをトラバースできるようにします。 Map のタイプ Java には Map のさまざまな実装があり、最も一般的なものは HashMap、TreeMap、LinkedHashMap です。 HashMap: ハッシュ テーブルに基づく Map 実装。高速な検索、挿入、削除の特徴がありますが、順序付けされていません。つまり、Map 内のキーと値のペアの順序は任意に決定されます。 TreeMap: 赤黒ツリーに基づいた Map 実装。高速な検索、挿入、削除の特徴があり、

See all articles