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

标签 java list set

在 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/

相关文章:

intellij-idea - 为什么 IntelliJ 建议将调用链转换为序列?

java - Velocity 模板中的乘法

python - 从字符列表中删除方括号

python - 如果值相等,则将连续的子列表分组在一起,然后提取具有属性 = 'R' 的值

c++ - 如果您在 C++ 中更新集合的成员,集合会自动更改顺序吗?

Scala:已弃用集差的替代方案

java - 为什么 Quartz 作业没有被执行(尽管 QUARTZ 表正在使用正确的作业详细信息进行更新)

java - 使用 Java 编写 Mac 应用程序包/文件夹

java - 内存泄漏 - android.os.Message 持有的 Android Activity

c# - 如何使用 LINQ 计算列表中列表中列表的元素?