0

我想要一个像多列数据表示的表格。例如考虑以下示例:

---------------------------------------------------------------
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
.
.
.
---------------------------------------------------------------

我想通过给定列中的值查询此表,例如val32在列中搜索值,col2这应该返回我所有可以以相同表格格式匹配此查询的行。

对于诸如 saycol5和之类的列col6,我想执行数学运算/查询,例如, getMax(),getMin()等...getSum()divideAll()

对于这样的要求,任何人都可以建议最能解决我的目的的任何类型的数据结构吗?任何一种数据结构或它们的组合,考虑有效的操作(如上面的数学示例)和查询?

让我知道是否有人需要更多信息。

Edit: Additional requirement

这应该足以有效地处理数亿行,并且可以轻松高效地持久化。

4

3 回答 3

1

你需要的是一个三部分的方法:

  1. Row包含每列字段的类
  2. AList<Row>存储行并提供顺序访问
  3. 一个或多个Map<String,Row>Map<Integer,Row>通过各种列值提供对行的快速查找。如果列值不是唯一的,那么您需要一个MultiMap<...>实现(Internet 上有几个可用)以允许给定键的多个值。

对象首先放置在列表中,然后Row在加载所有行后构建索引。

于 2013-06-27T05:37:35.713 回答
0

最后,我计划使用 Mongo 数据库,而不是通过所有基本和复杂的实现..

我希望这能解决我的问题。或者在所需操作的速度、存储和可用性方面(如问题所述)还有其他更好的数据库吗?

于 2013-06-27T07:16:35.340 回答
0

我认为下面应该有帮助:

Map<String,List<Object>>
  1. 在“col2”中搜索“val32”,搜索(cal2,val32):

获取与 cal2(map.get("cal2") 关联的对象的列表,并遍历它们以查找该值是否存在。

  1. getSum(字符串列名):

再次获取列表,迭代它添加这些值。返回最终总和。

由于您要添加对象列表,因此您可能希望从这些 API 中抛出 ClassCasteException。

于 2013-06-27T05:21:17.657 回答