java – 有没有更有效的方法来比较If语句中的3个项目?

我正在编写一个类赋值的程序,我想比较一个数组中的多个项目以获得等价.我的陈述基本上是这样的:

if (a == b && b == c && c == d && d == e && e == f) {
   // do stuff
}

这种情况似乎令人难以置信的冗长,我想知道是否有更短的方式来写这个.

最佳答案
这可能看起来很冗长,但至少它是合理有效和清晰的.

为简洁起见,请不要过度使用优化代码.

你可以很容易地做一个辅助功能

boolean allEqual(Object ... objs) {
    for(int i = 1; i < obj.length; i++) {
      if (!objs[i].equals(objs[0])) {
        return false;
      }
    }
    return true;
}

但这会产生额外的对象;特别是原始值:

if (allEqual(1.1,2.1,3.1,4.1))

将创建5个对象,需要进行垃圾回收.

确保你真的想要==而不是等于.

转载注明原文:java – 有没有更有效的方法来比较If语句中的3个项目? - 代码日志