我希望有一个表格,表示具有多列的数据。例如考虑以下样本:
---------------------------------------------------------------
col1 col2 col3 col4 col5(numeric) col6(numeric)
---------------------------------------------------------------
val01 val02 val03 val04 05 06
val11 val12 val13 val14 15 16
val21 val22 val23 val24 25 26
val31 val32 val33 val34 35 36
.
.
.
---------------------------------------------------------------
我想通过给定col中的值来查询此表格,例如在val32
列中搜索值col2
,该列应以相同的表格格式返回所有可与此查询匹配的行。
对于某些列,例如col5
和col6
,我想执行数学操作/查询,例如getMax()
,getMin()
,getSum()
,{ {1}}等...
对于这样的要求,任何人都可以建议任何类型的数据结构,以最好地解决我的目的吗?任何一个数据结构或它们的组合,考虑有效的操作(如上面的数学例子)和查询??
如果有人需要更多信息,请告诉我。
divideAll()
这应该足够有效,可以处理数亿行,并且还可以轻松有效地保留。
答案 0 :(得分:1)
您需要的是一个由三部分组成的方法:
Row
类List<Row>
Map<String,Row>
或Map<Integer,Row>
,可通过各种列值快速查找行。如果列值不唯一,那么您需要MultiMap<...>
实现(Internet上有几个可用)以允许给定键的多个值。首先将Row
个对象放在列表中,然后在加载所有行后构建索引。
答案 1 :(得分:0)
我认为下面应该有所帮助:
Map<String,List<Object>>
获取与cal2相关联的对象列表(map.get(“cal2”)),并迭代它们以查找该值是否存在。
再次获取列表,迭代它添加这些值。返回最后的总和。
由于您要添加对象列表,因此您可能希望从这些API中抛出ClassCasteException。
答案 2 :(得分:0)
最后,我计划使用Mongo数据库,而不是经历所有基本和复杂的实现。
我希望这能解决我的问题。或者,就速度,存储和所需操作的可用性而言,还有其他任何更好的数据库(如上所述)?