【发布时间】:2012-08-22 06:43:25
【问题描述】:
Java 中是否有更简洁的方法来确认List 中的所有元素都相同?
boolean elementsAreIdentical() {
return new HashSet<O>(list).size() == 1;
}
通过'cleaner',我想知道我们是否可以在不必创建全新对象的情况下做到这一点?根据大小,开销可能很大。
【问题讨论】:
-
您如何定义“更清洁”?在代码可读性方面?在效率方面?
-
定义“更清洁”。理想情况下,您希望在找到第一个不相同的元素后停止。
-
设为
size() <= 1以便它也可以通过空集合。顺便说一句,你的方法很聪明! -
@TomaszNurkiewicz 谢谢先生
-
它有一个糟糕的最坏情况,它会创建一组与原始列表相同大小的集合。我更喜欢
Object o = list.get(0); for (Object p : list) if (!p.equals(o)) return false; return true;