我设法创建一个具有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形式与键相关联。
最好的问候
答案 0 :(得分:5)
Java没有内置元组,尽管此类类型非常容易实现,并且例如用于Spark,我相信最多可以有十个值。
您可以创建自己的包含值的类。如果您的程序中没有很多组合,那么最好使用固定字段的简单类,因为它也可以给您的字段起名字,并提供其用途的文档。
如果字段和类型的组合需要更加动态,只需创建具有四个不同类型的泛型类,类似于Map.Entry的完成方式。