edw*_*yte 2 java arrays compare
我想将数组中的每个项目与所述数组中的每个其他项目进行比较.我现在正在这样做,它还可以,还是有更漂亮/更快/更合乎逻辑的方式呢?
for(int i=0; i<array1.size(); i++){
for(int j=0; j<array1.size(); j++){
if(i!=j){
..do stuff..
}
}
}
Run Code Online (Sandbox Code Playgroud)
你做了太多的比较,而且你不必要地将每个项目与自己进行比较.你想要的是这个:
for(int i=0; i<array1.size(); i++){
for(int j=i + 1; j<array1.size(); j++){
if(arr[i] != arr[j]){
..do stuff..
}
}
}
Run Code Online (Sandbox Code Playgroud)
(这假设你的平等观念是可交换的,通常是平等.)
如果您的数组中有N个项目,那么您的原始代码段将进行N ^ 2次比较,而我的代码段正在进行N(N-1)/ 2次比较.