将数组转换为LIST或Set的最快方法是什么?

时间:2012-01-16 14:55:10

标签: java

在Java中,将数组转换为List或set的最快方法是什么?

String[] a = {"Test1", "test2"};

List<String> l = new ArrayList<String>();

7 个答案:

答案 0 :(得分:11)

使用java.util.Arrays类。

List<String> list = Arrays.asList(new String[] {"a", "b"});

请注意,您通过上述方法获得的List的实现与java.util.ArrayList不同。如果您希望ArrayList实施,请使用

List<String> list = new ArrayList<String>(Arrays.asList(new String[] {"a", "b"}));

答案 1 :(得分:2)

要将数组转换为列表,请使用Arrays.asList

String[] a = {"Test1", "test2"};
List<String> list = Arrays.asList(a);

将数组转换为集合:

Set<String> set = new HashSet<String>(Arrays.asList(a));

答案 2 :(得分:1)

来自Arrays类(doc):

List<String> l = Arrays.asList(a);

答案 3 :(得分:0)

http://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html#asList(T ...)

这取决于你对“最快”的定义,但在这两种情况下都是如此。

答案 4 :(得分:0)

List list = Arrays.asList(array);

Collections.addAll(list, array);

第一个谷歌链接之一: http://javarevisited.blogspot.com/2011/06/converting-array-to-arraylist-in-java.html

答案 5 :(得分:0)

使用Google的Guava API,使用集合非常简单。

String[] a = {"Test1", "test2"};
List<String> l = Lists.newArrayList(a);

答案 6 :(得分:0)

Arrays.asList()适用于您的String []示例,但如果您正在转换原始数组,例如int []或double [],那么这将生成数组的单个项目列表。一个好的解决方案是使用Google Guava的原始辅助类,例如Ints

int[] a = new int[]{1,2,3}; 
List<Integer> l = Ints.asList(a);

有关更详细的说明,请参阅this answer