Java切片多维数组库

时间:2013-02-16 10:22:22

标签: java arrays slice

是否有支持切片的Java数组库?我只需要定期的 n x n'x n''x ... 数组,并从给定的维度或整个维度中获取一个切片(即不需要范围)。

备注(阅读对潜在评论的回复):

  • 我知道常规Java数组不支持它,我不愿意编写自己的切片库。
  • 使用Collection(在对other question的评论中建议)来改变问题
  • 使用System.arraycopy对高维度没有帮助,因为它不会显着降低循环嵌套
  • 这是(有点长篇故事)数字问题所以内部代码的OO方法不是最好的 - 最有用的抽象归结为切片
  • 我更喜欢切片的R / W视图(如果它只是R / O副本我不会抱怨)

编辑:不幸的是,我需要将对象存储在数组中 - 不仅仅是double

1 个答案:

答案 0 :(得分:3)

Vectorz是一个支持切片的矢量/矩阵库,如果您使用double值数组进行数值处理,它是一个不错的选择。它专为3D建模,获取,模拟或机器学习环境中的矢量/矩阵数学而设计。

优点:

  • 非常快(由原始doubledouble[]数组支持的所有内容)
  • 100%Pure Java
  • 支持任意切片和切块,主要用作O(1)操作(即无需复制数据)
  • 切片完全可读/写,即您可以使用它们来修改原始结构
  • 您还可以将向量连接在一起,获取子向量视图等。
  • 数字工作的专业课程,例如对角矩阵等。

它目前支持0,1和2维数组,计划更高维数组但尚未实现。