標準の Java Map インターフェイスでは、キー (キー) は値 (値) にのみマッピングできます。これは、一般的な Map 実装 (HashMap、TreeMap など) では、1 つのキーは 1 つの値にのみ対応し、1 つのキーの下にぶら下がっている複数の値はサポートされていないことを意味します。
ただし、キーを複数の値に関連付けることができるデータ構造を実装する場合は、特別な実装を使用するか、既存のデータ構造を拡張できます。一般的には、リスト (List) またはコレクション (Set) を使用して複数の値を保存し、このリストまたはコレクションを値としてキーに関連付けます。これにより、実際には 1 対多のマッピング関係が実装されます。
たとえば、HashMap
複数の値をキーに関連付けることができる構造を実装するために使用できます。
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MultiValueMapExample {
public static void main(String[] args) {
Map<String, List<String>> multiValueMap = new HashMap<>();
// 添加多个值到同一个键
multiValueMap.put("key1", new ArrayList<>());
multiValueMap.get("key1").add("value1");
multiValueMap.get("key1").add("value2");
// 获取键关联的多个值
List<String> valuesForKey1 = multiValueMap.get("key1");
System.out.println(valuesForKey1); // Output: [value1, value2]
}
}