画像処理アプリケーションを高速化するために、0 から始まるインデックスを使用して、配列内の値を中央からアドレス指定しようとしています。
たとえば、2 つの配列を使用する場合、次のような状況になることがよくあります。
public void work(int[] array1, int[] array2, int offset)
{
int len = array1.length;
for (int i = 0; i < len; i++)
array1[i] += array2[i + offset];
}
したがって、array2 (コピーではなく) の中央に直接マップする新しい変数 array3 を作成したいので、これを行うことができます。
public void work(int[] array1, int[] array2, int offset)
{
int[] array3 = array2[offset]...;
int len = array1.length;
for (int i = 0; i < len; i++)
array1[i] += array3[i];
}
実際には、次の c ステートメントに相当する Java が必要です。
int *array3ptr = array2ptr + offset;
注:私はJNIなどの経験がないので、これを使用することに要約される場合は、実際の例を提供してください。