我使用坐标系x(宽度),y(高度),z(深度)
只是为了清除混淆,如果有任何x和y是一个平面,我使用Z作为高程.
我将每秒访问数组数百万次,并且基准测试显示使用索引的一维数组更快,我想尽可能多地挤压效率,以便其他东西可以使用那个时间
例如,2D阵列 - > 1D阵列创建就是
Object[] oneDArray = new Object[width * height]
Run Code Online (Sandbox Code Playgroud)
并索引数组我可以使用以下.
Object obj = oneDArray[x + y * width]
Run Code Online (Sandbox Code Playgroud)
我确实在stackoverflow上找到了以下内容,但我不完全确定哪一个是正确的 如何在一维数组中"展平"或"索引"3D数组?
"正确"答案表示索引数组执行以下操作
Object[] oneDArray = new Object[width * height * depth]
Object obj = oneDArray[x + WIDTH * (y + DEPTH * z)]
Run Code Online (Sandbox Code Playgroud)
但另一个答案是说"正确"答案是错误的,并使用以下内容
Object[] oneDArray = new Object[width * height * depth]
Object obj = oneDArray[x + HEIGHT* (y + WIDTH* z)]
Run Code Online (Sandbox Code Playgroud)
读取扁平3D阵列的正确方法是什么?
我有以下Java程序,它抓取日期时间字符串并在多个正则表达式测试站点中进行测试,以检查它们是否确实有效,他们这样做.
private static final Pattern MATCH_DATE_TIME = Pattern.compile("<span id=\"lblMatchTime\" style=\"padding: 0px;\">([\\d+/ GMT:]+)</span>");
Run Code Online (Sandbox Code Playgroud)
未转义的表达版本
<span id="lblMatchTime" style="padding: 0px;">([\d/ :GMT]+)</span>
Run Code Online (Sandbox Code Playgroud)
以及我在上面测试过的网站.
有以下数据
<div style="width: 30%; text-align: center; display: inline-block;"> <span> Time : </span> <span id="lblMatchTime" style="padding: 0px;">05/28/2014 14:16:21 GMT</span> </div> <div style="width: 30%; text-align: center; display: inline-block;"> <span>duration: </span> <span id="lblMatchDuration" style="padding: 0px;">50</span> <span> minutes </span> </div> </div>
Run Code Online (Sandbox Code Playgroud)
具有未转义版本的上述两个网站都正确匹配下面的预期数据
<span id="lblMatchTime" style="padding: 0px;">05/28/2014 14:16:21 GMT</span> //the matched data
05/28/2014 14:16:21 GMT //$1 extracted data
Run Code Online (Sandbox Code Playgroud)
虽然上述两个站点都成功匹配并提取了我的程序没有的数据.
这是我的程序的代码(最小代码示例)
private static final Pattern …Run Code Online (Sandbox Code Playgroud)