比较三个整数是否相等的替代方法

问题描述 投票:0回答:5
int a = 10;
int b = 10;
int c = 10;

我试图找出是否有替代方法来比较三个整数或任何东西是否相等。

我目前正在做的方式是

if( (a == b) && (a == c) && (b == c)){

}

我想知道是否有其他更简洁的方法来做到这一点。

java operators conditional-statements
5个回答
33
投票

平等是传递性的;你不需要最后的比较

b == c
。如果
a == b
a == c
,则
b == c

尝试

if ((a == b) && (a == c)){

0
投票

如果您只需要知道三个是否相等,那么您可以使用:

if ((a==b) && (b==c)) {

}

0
投票

替代变体:

int t1 = a-b;
int t2 = c-b;
if ( (t1|t2) == 0 ) // both are equal

0
投票
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;
}

0
投票

您可以将它们添加到列表中,然后删除重复项并比较实际列表的大小减去唯一元素

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,因为我们已经减少了它。

© www.soinside.com 2019 - 2024. All rights reserved.