将数组中的对象与同一数组中的其他对象进行比较

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)

occ*_*lus 8

你做了太多的比较,而且你不必要地将每个项目与自己进行比较.你想要的是这个:

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次比较.