java.util.Collections 中 addAll 方法的实现只是简单地遍历源集合,并为源集合中的每个元素调用接收集合的 add 方法。
因此,如果接收集合的容量很小并且我们正在向其中添加许多元素,则可能会多次调整接收集合的底层数据结构的大小。每次调整大小都是 O(n) 操作。
似乎应该存在一个好的集合 addAll 方法,该方法将检查我们将添加的元素数量并在开始时设置一次接收集合的容量(如有必要)。这样的实用方法存在吗?如果没有,为什么不呢?
澄清:我意识到有特定于实现的 addAll 方法(如在 ArrayList 中)具有这种所需的行为。我想知道是否有 Collection 实用程序类可以让我以一种适用于所有 Collection 实现类的方式获得这种行为。