我有两个长字节数组,我需要计算相应位置上的字节数是否相同.我的解决方案(在JAVA中)如下:
int sum = 0;
for(int i = 0;i < t.length;i++)
if (t[i] == spb[i])
sum++;
Run Code Online (Sandbox Code Playgroud)
由于我的程序的这部分需要相当长的时间,我想知道我是否可以更快地完成这项工作
显然,两个阵列的长度是相同的
不,你基本上做的是正确的事情(至少对于一个线程 - 西蒙的使用多线程的想法很好).这需要多长时间,阵列有多长?它应该很快.
您可以通过创建ByteBuffer字节数组周围来加速它,然后再使用它asLongBuffer来创建LongBuffer包装它.然后,您可以一次检查8个字节(如长),仅在long比较返回false 时检查单个字节.这将是显著更复杂的代码,但-我也不会在所有惊讶地发现,它实际上是慢了很多.