首页 > 解决方案 > Java:多键/值映射

问题描述

我想要一个类似于 Map 但具有多个键和多个值的 Java 集合。

样本:

假设我们有 3 个键和一个元素的 3 个值。

set (key ("G", "Merc", "SUV"), val ("silver", "400", "100.000"));

val v = get (key ("A4", "Audi", "Sedan"))

某些图书馆中是否存在这样的集合?

标签: javacollections

解决方案


最简单的方法,也是我推荐的方法,是简单地创建 2 个 java 类,一个是键,另一个是值。

class Key {
    String str1, str2, str3;
}

class Value {
    String str1, str2, str3;
}

// later on

Map<Key, Value> map = ...;
map.put(new Key("G", "Merc", "SUV"), new Value("Silver", "400", "100.000"));
map.get(new Key("A4", "Audi", "Sedan"));

当然,这不是唯一的方法,但它是最容易维护的,也最容易在以后修改,如果你想为你的键添加另一个属性。

其他方式包括String[]用作键和值,List<String>和/或Set<String>。您甚至可以推出自己的Map<T>.


推荐阅读