[英]Java double[][] to double[] without copy
我有很多带有大double[][]
数组的旧代码,我需要将double[]
数组展平以用于新的库。 我不想复制,是否有一种简单的方法可以像在C语言中那样重新引用数组?
没有副本是不可能的。
具有double[][]
的内存不连续。
double[][]
的“行”是指double[]
对象。
double[]
占用的内存必须是连续的。
不可以。没有副本1是不可能的。
与C中的Nd数组不同,在C中执行数学运算以映射到单个连续对象上(因此强制转换可能起作用;但是请C语言律师来解决), Java中的“ 2d”数组是数组(对象)数组(许多对象)。 这扩展到每个其他维度。
也就是说,Java中的2d数组可以像C中的double* []
,其中辅助轴的每一行/列均已单独分配; 并且访问单元格需要两次查找操作,即使它仍然看起来像double[][]
访问。
1因为Java不允许操作符(即[])重载,甚至试图包装从1d到Nd的访问也不再看起来像数组,而是列表/数组列表。 无论如何,这仍然需要在下面进行单独的查找。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.