// 不编译
List list1 = new ArrayList<>("efefef", "fefe", "fefef");
// 一切都很好
List list = new ArrayList<>(Arrays.asList("efefef", "fefe",));
// 一切都很好,但有什么不同
列表 list1 = Arrays.asList("efefef", "fefe", "fefef");
// 不编译
List list1 = new ArrayList<>("efefef", "fefe", "fefef");
// 一切都很好
List list = new ArrayList<>(Arrays.asList("efefef", "fefe",));
// 一切都很好,但有什么不同
列表 list1 = Arrays.asList("efefef", "fefe", "fefef");
ArrayList根本没有这样的构造函数。只有 3 个构造函数,它们只能用于设置数组的初始容量,
public ArrayList(int initialCapacity)或者如您所指出的,传递一个集合public ArrayList(Collection<? extends E> c)。当然还有一个没有参数的构造函数public ArrayList()。在后一种情况下,它不会很简单
ArrayList,而是经过一些修改,具有固定的大小,即 元素不能插入,也不能删除。arraylist 没有允许您使用元素初始化列表的构造函数。
为此有第三方库,例如 guava
在 Java 9 中可以使用
ArrayList 没有接受字符串数组的构造函数,但它确实有接受 Collections 子项的构造函数,因此您可以基于另一个集合创建数组。据我了解,由于向后兼容性,没有添加另外 1 个构造函数。