我们可以通过以下三种方式(在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);
哪一种最好,哪种情况最好?这三者之间有什么区别吗?
答案 0 :(得分:4)
主要区别如下:
Arrays.asList()
创建一个不可调整大小的List
,此处仅用作访问new ArrayList(List)
构造函数的中间件。如果您不需要可变列表,则仅使用Arrays.asList()
是最简单/最干净的解决方案。
ArrayList.addAll()
将是向现有列表添加内容的“标准”方式(可能已包含与示例代码不同的数据),但是......
Collections.addAll()
是一种便捷方法:
这种方便方法的行为与之相同
c.addAll(Arrays.asList(elements))
,但此方法可能会运行 在大多数实现中显着更快。
三者之间的任何“好处”完全取决于你的情况和 实际上,它主要是代码风格问题,而不是与性能相关的问题。