用Java实现多维数据的有效方法

用Java实现多维数据的有效方法,java,arrays,multidimensional-array,implementation,Java,Arrays,Multidimensional Array,Implementation,我正在寻找一种用Java实现这种多维数据的方法。这些图片中显示了非常相似的示例 我知道数据库可能更好,但为了学习Java,我想先用Java实现它 任何关于寻找什么方法的建议或建议都将不胜感激 要回答您的问题,需要了解一些其他信息: 每个维度的可能值是否固定 值是否稀疏 每个维度的可能值是否具有很长的范围 如果每个维度都有很少可能的固定值,则可以使用多维数组 如果您对于每个维度都有不可能的非固定值< /强>,您可以考虑列表> > 列表… > /P> 如果有多个可能的值和稀疏矩阵,则可以使用

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

我知道数据库可能更好,但为了学习Java,我想先用Java实现它

任何关于寻找什么方法的建议或建议都将不胜感激


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

  • 每个维度的可能值是否固定
  • 值是否稀疏
  • 每个维度的可能值是否具有很长的范围
如果每个维度都有很少可能的固定值,则可以使用多维数组

如果您对于每个维度都有<强>不可能的非固定值< /强>,您可以考虑<代码>列表> <代码> > <代码>列表…<强> > /P>


如果有多个可能的值和稀疏矩阵,则可以使用
映射
,其中
坐标
是表示单个坐标的类,用于查找值,
是值的类型。

对于第一幅图像,我想说的是一个从integer到Person对象列表的Hashmap,整数是年份。不确定第二张图片显示的是什么有很多方法。选择一个数据结构总是需要了解它应该支持的操作,这实际上取决于你需要如何处理这些数据。您将如何搜索?看起来像HashMap(如cricket所述),但键是一个自写对象(例如,包含名称、年份、属性)我猜第二个是一个城市对象,在日期和某个PC对象之间有一个地图,上面有一个描述和一个值。目前我只想测试waters,看看可能的实现,并尝试一下。所以回答你的问题,目前第一张图片上的数据就是我所需要的。理想情况下,在未来,我相信有20000个条目需要DB。(OLAP我猜)如果每个维度只有1000个可能的值,那么4个维度意味着1000^4个可能的坐标,因此1.000.000.000对于这样的系统,稀疏矩阵通常是最好的解决方案,因为并非所有的值都是拟合的。