我正在使用多键袋来计算值的某些组合的出现,我想知道是否有一种优雅的方法将这些袋转换为嵌套的SortedMaps(例如TreeMaps)。嵌套TreeMap的数量等于multi键中组件的数量。例如,假设我有一个多钥匙袋,其中有一个已定义的钥匙:
multiKey = new String[]{"age", "height", "gender"}
因此,我想从中获得的对象是:
TreeMap<Integer, TreeMap<Integer, TreeMap<Integer, Integer>>>
并使用多键袋中的值填充它。因此,嵌套结构将包含来自多重键的值,如下所示:
TreeMap<"age", TreeMap<"height", TreeMap<"gender", count>>>
其中“年龄”由包中的相应值替换,“身高”也以此类推。.count是该特定组合出现的次数(由多把钥匙包本身返回)。
当然,多键的组件数目是动态的。如果multiKey只有两个组成部分,则结果对象将是:
TreeMap<Integer<TreeMap<Integer, Integer>>
从包中检索值并填充(嵌套的)TreeMap并不代表问题。仅转换。任何帮助表示赞赏。
而不是使用一堆包装器,为什么不创建自己的将相关数据分组在一起的类呢?看来这将大大简化此过程。
尽管如此,如果您真正想要的是能够对数据执行复杂的查询(伪代码):
全选(MALES> = 25 && HEIGHT <6'1)&&(女性<40 && HEIGHT> 5'0)
然后,您可能应该考虑使用数据库。我并不是说aTree
是不好的,但是如果您的目标是能够轻松/快速地执行复杂的查询,那么数据库是您的理想之选。当然,您可以编写自己的类/方法来为您执行这些计算,但是如果不需要,为什么还要重新发明轮子呢?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句