如何检查列表中的元素是否相同?

Jam*_*sev 4 java list set

Java中是否有更简洁的方法来确认所有元素List是否相同?

boolean elementsAreIdentical() {
  return new HashSet<O>(list).size() == 1;
}
Run Code Online (Sandbox Code Playgroud)

通过'清洁',我想知道我们是否可以做到这一点,而不必创建一个全新的对象?取决于大小开销可能是实质性的.

sla*_*ter 6

if (Collections.frequency(list, list.get(0)) == list.size()) {
  /* duplicates */
}
Run Code Online (Sandbox Code Playgroud)

...对于非空的列表.除此以外,

final int n = list.size();
if (n == 0 || Collections.frequency(list, list.get(0)) == n) {
  /* duplicates */
}
Run Code Online (Sandbox Code Playgroud)

请参阅规范Collections.frequency.这将比您的方法以及其他方法更便宜,例如Collections.nCopies(list.get(0), list.size()).equals(list)

  • @anio他并没有试图找出所有元素是否都是独一无二的,他想知道它们是否都是一样的. (2认同)