在Java中,将数组转换为List或set的最快方法是什么?
String[] a = {"Test1", "test2"};
List<String> l = new ArrayList<String>();
答案 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。