更好的数据结构,以多个参数(键)映射功能

时间:2015-10-18 15:17:20

标签: java c++ algorithm dictionary data-structures

我总是遇到一种情况:将两个对象映射到第三个对象。它就像函数f(x,y)= z。有时,变量列表会更长。

这个概念的直接实现是这样的函数:

object myFun(Object x, Object y){
    if(x==xVal1 && y== yVal1){
         return zVal1;
    }else if(x==xVal2 && y== yVal2){
         return zVal2;
    }else if(){ }else if(){
    }
}

此实现仅在 x y 的candicant值的大小很小时才有效。

是否有更好的数据结构设计。当 x y 的值的组合空间增加时,上述实现的实现将是不可能的(也不是优雅的)。

数组和地图被认为是在乞讨。但由于 x y 都确定了一个值,因此我无法解决双索引键问题的问题。

1 个答案:

答案 0 :(得分:0)

如果您希望数据结构使用两个密钥存储数据,然后使用相同的两个密钥检索它,为什么要重新发明轮子使用Apache Commons Collection库的MultiHashMap

ref https://commons.apache.org/proper/commons-collections/javadocs/api-3.2.1/org/apache/commons/collections/MultiHashMap.html