如何创建具有一个键和4个值的查找表?

时间:2019-06-06 22:34:51

标签: java dictionary hashmap

我设法创建一个具有1个键和2个值的查找表:

public static Map<String, Map.Entry<String, String>> myMap;
myMap= new HashMap<String, Map.Entry<String, String>>();

myMap.put("key 1", new AbstractMap.SimpleEntry<String, String>(" value 1.1", "value 1.2"));
myMap.put("key 2", new AbstractMap.SimpleEntry<String, String>(" value 2.1", "value 2.2"));
// and so on...

// retrieve the key, values
Map.Entry<String, String> pair;
for (String key : myMap.keySet() ) {
            pair = oidMap.get(key);
            value1= pair.getKey();
            value2= pair.getValue();
            ///use the key, value1, value2 as needed
}

但是当我尝试将其扩展为4个值时,我发现一堆错误,我发现Entry仅限于2个值!

public static Map<String, Map.Entry<String, String, Float, String>> myMap;
myMap= new HashMap<String, Map.Entry<String, String, Float, String>>(); 

那么,请问如何对1个键和4个值执行类似的操作? 我无法通过为第一个map.Entry的第二个参数声明一个内部map.entry来扩展此范围,因为在那一点上,第一个String不再是唯一的,我的意思是,Map.Entry>的所有参数都可以重复,没有一个可以重复用作密钥。

你们,不需要走我走的路。 您可以随意提供任何解决方案/数据结构,该结构/数据结构允许我以字符串和一个浮点数的形式存储和检索3个值,所有这些值均以String形式与键相关联。

最好的问候

1 个答案:

答案 0 :(得分:5)

Java没有内置元组,尽管此类类型非常容易实现,并且例如用于Spark,我相信最多可以有十个值。

您可以创建自己的包含值的类。如果您的程序中没有很多组合,那么最好使用固定字段的简单类,因为它也可以给您的字段起名字,并提供其用途的文档。

如果字段和类型的组合需要更加动态,只需创建具有四个不同类型的泛型类,类似于Map.Entry的完成方式。