マップ

Javaにおけるデータ型と例外処理

Jim White

Java Developer

マップはルックアップテーブル

  • マップはルックアップ用のデータ構造
    • 特定の「キー」に「値」を保存
    • 「キー」で保存した「値」を取得
  • 例: 医院へ電話
    • 名前/生年月日(キー)でカルテ(値)を照会

マップは、医療機関に電話して名前と生年月日でカルテを探すときのようなルックアップ構造

Javaにおけるデータ型と例外処理

Map インターフェース

  • Map インターフェースはキーと値の操作を定義
    • 特定キーに値を格納(put)する方法
    • Map からそのキーの値を削除(remove)する方法
    • キーで値を取得する方法
  • 挙動が類似する実装が複数存在
    • 一般的な実装に HashMap がある
1 See https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/Map.html for details
Javaにおけるデータ型と例外処理

HashMap のキーと値

Map や HashMap のキーと値は同じ型でも異なる型でもよい

Javaにおけるデータ型と例外処理

HashMap の構築

HashMap<Integer, String> map = new HashMap<Integer, String>();
  • HashMap のジェネリック指定は型が2つ必要

    • 1つ目 = キーの型

      HashMap の最初のジェネリック引数はキー用

    • 2つ目 = 値の型

      HashMap の2番目のジェネリック引数は値用

ジェネリクスのキー型と値型がデータ型を指定する

  • java.util.HashMap のインポートが必要
Javaにおけるデータ型と例外処理

HashMap のメソッド

  • .put(key,value) でキーと値を追加
  • .remove(key) で指定キーのペアを削除
  • .get(key) でキーにある値を取得
import java.util.HashMap
...
HashMap<Integer, String> map
    = new HashMap<Integer, String>();
map.put(0, "Jim");
map.put(1, "James");
map.put(3, null);
map.put(4, "James");
map.remove(0);
System.out.println(map);
{1=James, 3=null, 4=James}
String nickname = map.get(1);
System.out.println(nickname);
James
Javaにおけるデータ型と例外処理

Collections

  • java.util.Collections は補助クラス
  • ソート、埋め込み、コピー、検索などを支援
    • すべて static メソッドのみ
1 See https://docs.oracle.com/en/java/javase//21/docs/api/java.base/java/util/Collections.html
Javaにおけるデータ型と例外処理

Collection のメソッド

  • List に複数追加
    • addAll(List list, Object a, b, ...)
  • コレクション内の出現回数を数える
    • frequency(Collection c, Object o)
  • List の並びを逆順にする
    • reverse(List list)
  • List をソートする
    • sort(List list)
  • List の全要素を別のオブジェクトで置換
    • fill(List a, Object o)
ArrayList<String> x = new ArrayList<String>();
Collections.addAll(x,
    "milk", "bread", "eggs", "milk");
System.out.println(x);

int cnt = Collections.frequency(x, "milk"); System.out.println(cnt);
Collections.reverse(x); System.out.println(x);
Collections.sort(x); System.out.println(x);
Collections.fill(x, "sugar"); System.out.println(x);
[milk, bread, eggs, milk]

2
[milk, eggs, bread, milk]
[bread, eggs, milk, milk]
[sugar, sugar, sugar, sugar]
Javaにおけるデータ型と例外処理

Arrays

  • 配列(例: int[])を List に変換したい場合がある
    • Java の配列は可変長でなく、増減が必要になることがある
    • List は検索・ソートなど機能が豊富
  • java.util.Arrays はもう一つの補助クラス
    • 配列を List に変換可能
Javaにおけるデータ型と例外処理

Arrays の例

String[] arrayCountries = {"France", "Japan", "Brazil", "Egypt", "China"};
List<String> countries = Arrays.asList(arrayCountries);
System.out.println(countries);
[France, Japan, Brazil, Egypt, China]
Javaにおけるデータ型と例外処理

Passons à la pratique !

Javaにおけるデータ型と例外処理

Preparing Video For Download...