java - 用于查询处理和数学运算的表状数据结构

标签 java data-structures

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

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

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

对于某些列,例如 col5col6,我想执行数学运算/查询,例如 getMax()getMin()getSum()divideAll() 等...

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

如果有人需要更多信息,请告诉我。

编辑:附加要求

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

最佳答案

您需要的是一个由三部分组成的方法:

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

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

关于java - 用于查询处理和数学运算的表状数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17334938/

相关文章:

java - 集合的 toString() 方法中的 StackOverflowError 是一个错误吗?

java - 如何使接口(interface)中的返回类型通用?

c++ - 快速线路查询的数据结构?

list - 列表和 Python 中设置的内存消耗

data-structures - 程序终止时数据结构丢失

java - 从未排序的单链表中删除重复项,在尝试跳过重复元素时导致逻辑错误

java - 具有可定制内容的 JSF 迭代复合组件

Java POI 提供的数据似乎位于 Office 2007+ XML 中

java - 如何将 "2019-04-11T05:00:54.000+01:00"转换为 dd/MM/yyyy hh :mm format

c# - 多键字典,其中只需要 1 个键来检索对象