为什么java util.List接口中存在多个of
静态工厂方法,具体取决于参数的数量,从1到10?是不是只有一个方法可以将数组作为输入参数?
答案 0 :(得分:3)
他们实现了1到10和> 10,因为通常使用1到10并且比使用函数的可变长度args输入提供了大量的性能提升,例如args...
答案 1 :(得分:2)
我在an article of Java World找到了一个答案,当你想到它时,它似乎很合乎逻辑。
在每个方法列表中,第一个方法创建一个空的不可修改的集合。接下来的10个方法创建了具有多达10个元素的不可修改的集合。 尽管它们的API混乱,但这些方法避免了最终的varargs方法引起的数组分配,初始化和垃圾收集开销,该方法支持任意大小的集合。