概要
Multimaps
Google Guavaが提供する、多値マッピングのデータ構造を処理するためのツールクラスです。これは、各キーを 1 つ以上の値に関連付けることができる、複数値のマップを作成および操作するための便利な方法を提供します。
機能:Multimaps
次の主な機能を提供します。
- 複数の値を 1 つのキーに関連付けます。
- 指定されたキーに関連付けられたすべての値を取得します。
- すべてのキーと値のペアを含むコレクションを取得します。
- すべてのキーを取得します。
- すべての値を取得します。
- 指定されたキーに関連付けられたすべての値を削除します。
該当シーン
Multimaps
次のシナリオに適用されます。
- 学生が複数のコースを持つことができるなど、キーは複数の値に関連付けることができます。
- 複雑なデータ構造やロジックを自分で作成しなくても、複数値のマッピングのニーズに対応できます。
- 追加、取得、削除など、複数値マップを迅速かつ簡単に処理する必要がある操作。
Javaの例
以下は を使用した Java の例ですMultimaps
。
javaCopy code
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
public class MultimapExample {
public static void main(String[] args) {
// 创建一个 ArrayListMultimap 实例
Multimap<String, Integer> multimap = ArrayListMultimap.create();
// 添加键值对
multimap.put("key1", 1);
multimap.put("key1", 2);
multimap.put("key2", 3);
multimap.put("key2", 4);
multimap.put("key2", 5);
// 获取给定键关联的所有值
System.out.println(multimap.get("key1")); // 输出: [1, 2]
System.out.println(multimap.get("key2")); // 输出: [3, 4, 5]
// 获取所有的键
System.out.println(multimap.keys()); // 输出: [key1 x 2, key2 x 3]
// 获取所有的值
System.out.println(multimap.values()); // 输出: [1, 2, 3, 4, 5]
// 移除给定键关联的所有值
multimap.removeAll("key1");
System.out.println(multimap.get("key1")); // 输出: []
// 移除所有的键值对
multimap.clear();
System.out.println(multimap.isEmpty()); // 输出: true
}
}