2 バイト配列を比較し、どちらが大きいか、または等しいかを知る必要があります (等しいか異なるかだけでは十分ではありません)。バイト配列は、15 文字以上の String 値を表します。この比較は、私のコードでかなり繰り返されます。
Java で C++ の memcmp メソッドに相当するものを使用して (できれば JNI によって) bye 配列の比較を改善したいと考えています。C# で DLLImport を使用する例を見つけたので、JNI 呼び出しも適用できるといいのですが。
C# コード セグメントは次のとおりです。
[DllImport("msvcrt.dll")]
unsafe static extern int memcmp(void* b1, void* b2, long count);
unsafe static int ByteArrayCompare1(byte[] b1, int b1Index, int b1Length, byte[] b2, int b2Index, int b2Length)
{
CompareCount++;
fixed (byte* p1 = b1)
fixed (byte* p2 = b2)
{
int cmp = memcmp(p1 + b1Index, p2 + b2Index, Math.Min(b1Length, b2Length));
if (cmp == 0)
{
cmp = b1Length.CompareTo(b2Length);
}
return cmp;
}
}
Javaでこれを実装する方法を知っている人はいますか?
前もって感謝します、
ダイアナ