【问题标题】:Is there a simpler way to write (a == b && b == c && c == d) in Java? [duplicate]有没有更简单的方法来用 Java 编写 (a == b && b == c && c == d)? [复制]
【发布时间】:2020-01-30 22:27:41
【问题描述】:

如果我想检查所有 4 个整数是否相同,是否有比标题中的更短的版本?

【问题讨论】:

  • 不,没有。

标签: java


【解决方案1】:
Set.of(a, b, c, d).size() == 1  // EDIT: WRONG!!

我的意思是,我真的不会那样做

编辑: Stuart Marks 指出如果有重复元素,Set.of 会抛出 IllegalArgumentException。替代方案:

Set.copyOf(Arrays.asList(a, b, c, d)).size() == 1

或者如果你急需一个简短的表达方式:

copyOf(asList(a, b, c, d)).size() == 1

(假设静态导入过多。)

【讨论】:

  • 真的很可爱。
  • @PM77-1 太可爱了。
  • 我认为这更难理解,因为问题是关于更简单的方法。但我喜欢你的想法不是微不足道的,代码很紧凑,并且投票赞成你的答案。
  • 我认为如果任何元素相等,这将引发异常。 Set.copyOf(Arrays.asList(a, b, c, d)).size() == 1 怎么样?
  • @StuartMarks 哦,太棒了。我总是忘记那些奇怪的东西。在我的辩护中,该异常没有直接记录在方法文档中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-14
  • 1970-01-01
  • 2013-11-11
  • 1970-01-01
  • 2012-01-27
  • 1970-01-01
相关资源
最近更新 更多