有什么两个byte[]类型的对象进行比较有比较快的是方法么?我这样做:
for (int i=0; i<buffSz; i++) {
byte b1 = buff1[i];
byte b2 = buff2[i];

if (b1 != b2)
return false;
}看了一下ByteBuffer类的equals方法实现,好像大致也是一样,系统有没有提供高速(native)的方法?望达人指点,谢谢!

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【alphax】截止到2008-06-30 20:05:57的历史汇总数据(不包括此帖):
    发帖数:19                 发帖分:870                
    结贴数:19                 结贴分:870                
    未结数:0                  未结分:0                  
    结贴率:100.00%            结分率:100.00%            
    敬礼!
      

  2.   


    java.util.Arrays.equals(bArr1, bArr2);
      

  3.   

    java.util.Arrays.equals(bArr1, bArr2);
      

  4.   

    没有 native 方法,Arrays.equals 也是通过循环一个一个来比的。基本类型数组的循环比较速度并不比 C 语言慢哦。
      

  5.   

    谢谢各位,
    to bao110908:
    也不能这样说,c语言的实现是有可能用汇编指令的,我记得汇编有比较串的指令,像比较字节数组这样的系统函数都是用汇编实现的。今天作一个inflater/deflater的测试,先从25M的磁盘文件加载到内存,然后压缩再解压,然后比较内存结果和磁盘文件是否相同,结果下了我一跳,整个过程足足用了1分多钟。我的机器也是不错的机器。目前也不知道是不是我代码的问题。好了,先谢谢各位,明天再揭帖。