说我有3个整数的数组。我希望能够使用if语句或for循环从这些数组中获得这些结果。

[0,1,2] = 0 equal
[0,1,0] = 2 equal
[0,0,0] = 3 equal

到目前为止,这是我的工作,但我认为可以简化。
int numequal = 0;

if(intarr[0] != null && intarr[1] != null && intarr[0].numequals(intarr[1])) {
    numequal++;
}

if(intarr[0] != null && intarr[2] != null && intarr[0].numequals(intarr[2])) {
    numequal++;
}

if(intarr[1] != null && intarr[2] != null && intarr[1].numequals(intarr[2])) {
    numequal++;
}

if(numequal == 1) {
    numequal = 2;
}

另外,我正在尝试使其保持基本状态。也许只是为了循环。没有哈希集或字典。

最佳答案

您可能正在寻找一种非常简单的解决方案,所以我尝试对您的代码进行一些优化:

int[] intarr = {'0','1','2'};
int numequal = 0;

if(intarr[0] == intarr[1] || intarr[0] == intarr[2] ){
    numequal++;
}
if( intarr[1] == intarr[2]){
    numequal++;
}

if (numequal > 0 ){
    numequal++;
}

如果您的数组声明为int[],则无需检查nulls intarr[1] != null

如果未设置某些项目,则默认为0

10-05 22:01