English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 基礎教程

Java プロセス制御

Java 配列

Java 面向オブジェクト(I)

Java 面向オブジェクト(II)

Java 面向オブジェクト(III)

Java 例外処理

Java リスト(List)

Java Queue(キュー)

Java Mapコレクション

Java Setコレクション

Java 入出力(I/O)

Java Reader/Writer

Java その他のトピック

Java Mapインターフェース

このチュートリアルでは、Java Mapインターフェースおよびそのメソッドを学びます。

JavaコレクションフレームワークのMapインターフェースはMapデータ構造の機能を提供します。

コレクションインターフェースを実現しています。

マップの動作プロセス

Javaでは、Map要素はキー/値ペアの中で。キーは各値に関連するユニークな値です。

Map集合は重複のキーを含むことはできません。かつ、それぞれのキーは値に関連しています。

関連するキーを使って値にアクセスし、修正することができます。

上の図では、値が:United States、Brazil、およびSpainがあります。それぞれのキーが:us、br、およびesです。

今や、対応するキーを使ってこれらの値にアクセスできます。

注意:Mapインターフェースがメンテナンスしています。3個の異なるセット:

  • キーセット

  • 値セット

  • キー/値関連(マップ集合)の集合。

したがって、キー、値、および関連をそれぞれアクセスできます。

Mapを実現するクラス

Mapはインターフェースであるため、オブジェクトを作成することができません。

Mapインターフェースの機能を使用するために、以下のクラスを使用できます:

これらのクラスは集合フレームワークで定義され、Mapインターフェースを実現しています。

Mapを継承するインターフェース

Mapインターフェースは以下のこれらのサブインターフェースから継承されています:

mapを使用する方法は?

Javaでは、Mapを使用するためにjava.util.Mapパッケージをインポートする必要があります。パッケージをインポートした後、以下のようにmapを作成します。

//HashMapクラスを使用してMapを作成します
Map<Key, Value> numbers = new HashMap<>();

上記のコードでは、numbersという名前のMapを作成しました。Mapインターフェースを実現するためにHashMapクラスを使用しました。

ここでは、

  • Key - mapの各要素(値)に関連付けられるユニークな識別子

  • Value - mapにキーで関連付けられた要素

mapメソッド

MapインターフェースはCollectionインターフェースのすべてのメソッドを含んでいます。これはCollectionがMapのスーパーオブジェクトであるためです。

Collectionインターフェースで利用可能なメソッドに加えて、Mapインターフェースには以下のメソッドも含まれています:

  • put(K,V) - キーKと値Vの関連付けをmapに挿入します。キーが既に存在する場合、新しい値は古い値を置き換えます。

  • putAll() - 指定されたMap集合のすべてのエントリをこのMap集合に挿入します。

  • putIfAbsent(K,V) - キーKがまだvalueに関連付けられていない場合、関連付けVを挿入します。

  • get(K) - 指定されたキーKに関連付けられた値を返します。キーが見つからない場合は、nullを返します。

  • getOrDefault(K,defaultValue) - 指定されたキーKに関連付けられた値を返します。キーが見つからない場合は、defaultValueを返します。

  • containsKey(K) - 指定されたキーKがmapに存在するかどうかを確認します。

  • containsValue(V) - 指定された値Vがmapに存在するかどうかを確認します。

  • replace(K,V) - キーKの値を新しい指定値Vに置き換えます。

  • replace(K,oldValue,newValue) - キーKが値oldValueに関連付けられている場合のみ、新値newValueでキーKの値を置き換えます。

  • remove(K) - キーKを表すMapからエントリを削除します。

  • remove(K,V) - Map集合からキーKと値Vに関連付けられたエントリを削除します。

  • keySet() -Map集合に存在するすべてのキーのセットを返します。

  • values() -Map集合に含まれるすべての値のセットを返します。

  • entrySet() -mapに存在するすべてのキーを返します/値マッピングの集合。

mapインターフェースの実装

1.HashMapクラスを実装します

import java.util.Map;
import java.util.HashMap;
class Main {
    public static void main(String[] args) {
        //HashMapクラスを使用してmapを作成します
        Map<String, Integer> numbers = new HashMap<>();
        //要素をmap集合に挿入します
        numbers.put("One", 1);
        numbers.put("Two", 2);
        System.out.println("Map: " + numbers);
        //mapのキー
        System.out.println("Keys: " + numbers.keySet());
        //mapの値
        System.out.println("Values: " + numbers.values());
        //mapのエントリ
        System.out.println("Entries: " + numbers.entrySet());
        //マップ集合から要素を削除します
        int value = numbers.remove("Two");
        System.out.println("削除された値は: " + value);
    }
}

出力結果

Map: {One=1, Two=2}
Keys: [One, Two]
Values: [1, 2]
Entries: [One=1, Two=2]
削除された値は: 2

HashMapについてもっと詳しく知りたい場合は、こちらを訪問してくださいJava HashMap

2.TreeMapクラスを実装します

import java.util.Map;
import java.util.TreeMap;
class Main {
    public static void main(String[] args) {
        //TreeMapを使用してmapを作成します
        Map<String, Integer> values = new TreeMap<>();
        //要素をmapに挿入します
        values.put("Second", 2);
        values.put("First", 1);
        System.out.println("TreeMapを使用してmapを作成します: " + values);
        //置換値
        values.replace("First", 11);
        values.replace("Second", 22);
        System.out.println("新しいマップ: " + values);
        //マップ集合から要素を削除します
        int removedValue = values.remove("First");
        System.out.println("削除された値: " + removedValue);
    }
}

出力結果

TreeMap を使用してマップを作成します: {First=1, Second=2}
新しいマップ: {First=11, Second=22}
削除された値: 11

TreeMap に関する詳細情報を知りたい場合は、訪問してくださいJava TreeMap