我们可以通过以下 3 种方式从数组创建列表(在 Java 7 中),
1. 使用Arrays.asList()
2. 使用ArrayList.addAll()
3. 使用Collections.addAll()
// Using Arrays.asList()
String[] stringArray = {"foo", "bar", "baz"};
List<String> stringList = new ArrayList<>(Arrays.asList(stringArray));
// Using ArrayList.addAll()
String[] stringArray = {"foo", "bar", "baz"};
ArrayList<String> list = new ArrayList<>();
list.addAll(Arrays.asList(stringArray));
// Using Collections.addAll()
String[] stringArray = {"foo", "bar", "baz"};
ArrayList<String> list = new ArrayList<>();
Collections.addAll(list, stringArray);
哪一个最好,适合什么情况?这三者之间有什么区别吗?
最佳答案
主要区别如下:
Arrays.asList()
创建一个不可调整大小的 List
,此处仅用作访问 new ArrayList(List)
的中间体构造函数。如果您不需要可变列表,则仅使用 Arrays.asList() 是最简单/最干净的解决方案。
ArrayList.addAll()
将是向现有列表添加内容的“标准”方式(可能已经包含与示例代码不同的数据),但是...
Collections.addAll()
是一种便捷方法:
The behavior of this convenience method is identical to that of
c.addAll(Arrays.asList(elements))
, but this method is likely to run significantly faster under most implementations.
三者之间的任何“更好”完全取决于您的情况和 实际上,这主要是代码风格问题,而不是性能相关。
关于java - 从数组创建列表 - 3 种方法哪一种更好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42557829/