int a = 10;
int b = 10;
int c = 10;
我试图找出是否有替代方法来比较三个整数或任何东西是否相等。
我目前正在做的方式是
if( (a == b) && (a == c) && (b == c)){
}
我想知道是否有其他更简洁的方法来做到这一点。
平等是传递性的;你不需要最后的比较
b == c
。如果 a == b
和 a == c
,则 b == c
。
尝试
if ((a == b) && (a == c)){
如果您只需要知道三个是否相等,那么您可以使用:
if ((a==b) && (b==c)) {
}
替代变体:
int t1 = a-b;
int t2 = c-b;
if ( (t1|t2) == 0 ) // both are equal
public static int equal(int a, int b, int c) {
int count = 0;
if (a==b && b==c) {
count = 3;
} else if ((a==b && b!=c) || (a==c && a!=b)) {
count = 2;
}
return count;
}
您可以将它们添加到列表中,然后删除重复项并比较实际列表的大小减去唯一元素
List elements = Arrays.asList(a,b,c);
List distinct = elements.stream().distinct().toList();
return elements.size() == distinct.size() ? 0 : elements.size() - distinct.size() + 1;
distinct 列表包含一个重复项,因此我们必须加 1,因为我们已经减少了它。