我正在使用多个密钥袋来计算某些值组合的出现次数,我想知道是否有一种优雅的方法将这些袋子转换为嵌套的SortedMaps,如TreeMaps。嵌套TreeMaps的数量等于多键中的组件数。例如,假设我有一个具有定义键的多键包:
multiKey = new String[]{"age", "height", "gender"}
因此,我想从中获得的对象是:
TreeMap<Integer, TreeMap<Integer, TreeMap<Integer, Integer>>>
并使用多键包中的值填充它。因此,嵌套结构将包含多键中的值,如下所示:
TreeMap<"age", TreeMap<"height", TreeMap<"gender", count>>>
其中“age”由bag中的相应值替换,“height”也是等等。 count 是该特定组合的出现次数(由此返回)多钥匙包本身)。
当然,多键的组件数是动态的。 如果multiKey只有两个组件,那么结果对象将是:
TreeMap<Integer<TreeMap<Integer, Integer>>
从包中检索值并填充(嵌套)TreeMaps并不代表问题。只有转换。任何帮助表示赞赏。
答案 0 :(得分:0)
为什么不创建自己的类来将相关数据组合在一起,而不是使用一堆包装器?这似乎可以简化这个过程。
尽管如此,如果您真正想要的是能够对您的数据执行复杂查询(伪代码):
选择全部(MALES&gt; = 25&amp;&amp; HEIGHT&lt; 6'1)&amp;&amp; (FEMALES&lt; 40&amp;&amp; HEIGHT&gt; 5'0)
然后你应该考虑使用数据库。我并不是说Tree
不好,但如果您的目标是能够轻松/快速地执行复杂查询,那么数据库就是最佳选择。当然,您可以编写自己的类/方法来为您执行这些计算,但是如果您不需要重新发明轮子呢?