有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java切片多维数组库

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

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

  • 我知道常规Java数组不支持它,我也不愿意编写自己的切片库
  • 使用Collection(在对other question的评论中建议)可以转移问题
  • 在高维中使用System.arraycopy没有帮助,因为它不会显著降低循环的嵌套
  • 这是一个(有点长的故事)数值问题,所以内部代码的OO方法不是必需的——最好的方法——最有用的抽象归结为切片
  • 我更喜欢从切片的R/W视图(如果只是R/O拷贝,我不会抱怨)

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


共 (1) 个答案

  1. # 1 楼答案

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

    优点:

    • 非常快(一切都由原始doubledouble[]数组支持)
    • 100%纯Java
    • 支持任意切片和切割,主要作为O(1)操作(即无需数据复制)
    • 切片完全启用读/写功能,即您可以使用它们修改原始结构
    • 你也可以将向量连接在一起,获取子向量视图等
    • 数值计算的专业课程,如对角矩阵等

    它目前支持0维、1维和2维数组,计划使用更高维数组,但尚未实施