Java 将多键列表转换为多维排序映射

Java 将多键列表转换为多维排序映射,java,type-conversion,sortedlist,multikey,Java,Type Conversion,Sortedlist,Multikey,我使用多键包来计算某些值组合的出现次数,我想知道是否有一种优雅的方法可以将这些包转换为嵌套的分类图(如树形图)。嵌套树形图的数量等于多键中组件的数量。例如,假设我有一个多钥匙包,它有一个已定义的钥匙: multiKey = new String[]{"age", "height", "gender"} 因此,我想从中获得的目标是: TreeMap<Integer, TreeMap<Integer, TreeMap<Integer, Integer>>> T

我使用多键包来计算某些值组合的出现次数,我想知道是否有一种优雅的方法可以将这些包转换为嵌套的分类图(如树形图)。嵌套树形图的数量等于多键中组件的数量。例如,假设我有一个多钥匙包,它有一个已定义的钥匙:

multiKey = new String[]{"age", "height", "gender"}
因此,我想从中获得的目标是:

TreeMap<Integer, TreeMap<Integer, TreeMap<Integer, Integer>>>
TreeMap<Integer<TreeMap<Integer, Integer>>
TreeMap
并用多键包中的值填充它。因此,嵌套结构将包含来自多键的值,如下所示:

TreeMap<"age", TreeMap<"height", TreeMap<"gender", count>>> 
TreeMap
其中“年龄”替换为袋子中的相应值,“高度”等count是该特定组合的出现次数(由多键包本身返回)

当然,多关键点组件的数量是动态的。 如果多关键点只有两个组件,则生成的对象将是:

TreeMap<Integer, TreeMap<Integer, TreeMap<Integer, Integer>>>
TreeMap<Integer<TreeMap<Integer, Integer>>

TreeMap与其使用一堆包装器,不如创建自己的类,将相关数据分组在一起?这似乎会大大简化流程

尽管如此,如果您真正想要的是能够对数据执行复杂的查询(伪代码):

全部选择(男性>25岁,女性<40岁,女性>5岁)


然后,您可能应该考虑使用数据库。我并不是说
不好,但是如果您的目标是能够轻松/快速地执行复杂的查询,那么数据库就是一个不错的选择。当然,您可以编写自己的类/方法来执行这些计算,但如果不必这样做,为什么还要重新发明轮子呢?

不清楚如何从
多键
中获得嵌套树结构以及它们之间的关系。你能详细说明你的问题吗?也许有一种复合数据结构能更好地满足您的需要。@DeepakBala这就是我想要得到的。多关键字中的嵌套树结构。嵌套树形图的数量取决于多键组件的数量。@Marius,没有回答这个问题。它是如何嵌套的?@SteveP。好啊我已经编辑了这个问题。我希望现在更清楚了。嵌套树形图的数量不是问题。只知道如何根据多键中的组件数量初始化/创建嵌套树映射结构。是的,这就是我所意识到的,嵌入式数据库将解决这个问题并创造更多的灵活性。创建我自己的分组类不是它的选择,因为我不知道它应该提供的所有可能性/功能,这意味着每次用户提出新问题时都要修改/添加新方法。谢谢你的努力,没问题。如果您想要一个纯java数据库,请查看。可以,再次感谢。对不起,我不能给你分数。。声誉不够:/