【问题标题】:Efficient way to implement multidimentional data in Java在 Java 中实现多维数据的有效方法
【发布时间】:2016-01-26 13:31:39
【问题描述】:

我正在寻找一种在 Java 中实现这种多维数据的方法。这些图片中显示了非常相似的示例。

我知道数据库可能更好,但为了学习 Java,我希望首先在 Java 中实现它。

感谢任何建议或寻找什么方法。

【问题讨论】:

  • 对于第一张图片,我会说一个从整数到某个 Person 对象列表的 Hashmap,其中整数是年份。不确定第二张图片显示的是什么
  • 方法有很多。选择数据结构还需要了解它应该支持的操作。
  • 这真的取决于您需要如何处理这些数据。您将如何搜索?
  • 看起来像 HashMap(如 cricket 所指出的),但键是自写的对象(例如,包含名称、年份、属性)。
  • 我猜第二个是 City 对象,在日期和一些带有描述和值的 PC 对象之间有一个映射

标签: java arrays multidimensional-array implementation


【解决方案1】:

要回答您的问题,有必要了解一些其他信息:

  • 每个维度的可能值是否固定?
  • 值是否稀疏?
  • 每个维度的可能值是否具有很长的范围?

如果每个维度可能的固定值很少,您可以使用多维度数组

如果每个维度几乎没有可能的非固定值,您可以考虑 List of List of List...

如果您有许多可能的值和一个稀疏矩阵,您可以使用 Map<Coordinate, Value> 其中Coordinate 是一个代表单个坐标的类来查找您的值和Value 是您的值的类型。

【讨论】:

  • 目前我只想试水看看可能的实现并尝试一下。所以回答你的问题,目前我只需要第一张图片上的数据。理想情况下,我相信有 20000 个条目需要数据库。 (我猜是 OLAP)
  • 如果每个维度只有 1000 个可能的值,有 4 个维度意味着 1000^4 个可能的坐标,因此对于此类系统,1.000.000.000.000 通常稀疏矩阵是最佳解决方案,因为并非所有值一般都适合。
猜你喜欢
  • 2011-06-24
  • 1970-01-01
  • 1970-01-01
  • 2018-11-28
  • 1970-01-01
  • 1970-01-01
  • 2012-02-05
  • 2021-02-18
  • 1970-01-01
相关资源
最近更新 更多