当您使用第二种方法时,您正在使用预定义值初始化arraylist。 一般我们做 ArrayList listofStrings = new ArrayList <>(); 假设您有一个包含值的数组,现在您想将此数组转换为数组列表。
您需要先使用Arrays utils从阵列中获取列表。 因为ArrayList是实现List接口的具体类型。不保证asList方法会返回这种类型的实现。
List<String> listofOptions = (List<String>) Arrays.asList(options);
然后你可以使用用户的构造函数的arraylist实例化预定义的值。
ArrayList<String> arrlistofOptions = new ArrayList<String>(list);
所以你的第二种方法是工作,你已经传递值将列表元素与列表元素列表。
更多结果
从数组返回的ArrayList。asList不是一个真正的数组列表,它只是一个不允许在列表中进行任何修改的包装器。 如果尝试添加或移除了Arrays.asList它会给你
UnsupportedOperationException异常