在 Java 中是否有更简洁的方法来确认 List
中的所有元素都相同?
boolean elementsAreIdentical() {
return new HashSet<O>(list).size() == 1;
}
通过'cleaner',我想知道我们是否可以在不必创建全新对象的情况下做到这一点?根据大小,开销可能很大。
最佳答案
if (Collections.frequency(list, list.get(0)) == list.size()) {
/* duplicates */
}
... 对于非空列表。否则,
final int n = list.size();
if (n == 0 || Collections.frequency(list, list.get(0)) == n) {
/* duplicates */
}
请参阅 Collections.frequency
的规范.这将比您的方法和其他方法便宜,例如Collections.nCopies(list.get(0), list.size()).equals(list)
关于java - 如何检查列表中的元素是否相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12147725/