【发布时间】:2012-01-16 14:55:10
【问题描述】:
在 Java 中,将数组转换为列表或集合的最快方法是什么?
String[] a = {"Test1", "test2"};
List<String> l = new ArrayList<String>();
【问题讨论】:
-
“最快的方法是什么” 请随机的陌生人为你做这件事?哦等等,你已经知道了。
标签: java
在 Java 中,将数组转换为列表或集合的最快方法是什么?
String[] a = {"Test1", "test2"};
List<String> l = new ArrayList<String>();
【问题讨论】:
标签: java
使用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"}));
【讨论】:
要将数组转换为列表,请使用Arrays.asList:
String[] a = {"Test1", "test2"};
List<String> list = Arrays.asList(a);
将数组转换为集合:
Set<String> set = new HashSet<String>(Arrays.asList(a));
【讨论】:
来自数组类 (doc):
List<String> l = Arrays.asList(a);
【讨论】:
http://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html#asList(T...)
这取决于您对“最快”的定义,但在这两种情况下都是这样。
【讨论】:
List list = Arrays.asList(array);
Collections.addAll(list, array);
第一个谷歌链接之一: http://javarevisited.blogspot.com/2011/06/converting-array-to-arraylist-in-java.html
【讨论】:
使用 Google 的 Guava API,使用集合要简单得多。
String[] a = {"Test1", "test2"};
List<String> l = Lists.newArrayList(a);
【讨论】:
Arrays.asList() 适用于您的 String[] 示例,但如果您正在转换原始数组,例如 int[] 或 double[],那么这将生成数组的单个项目列表。一个好的解决方案是使用 Google Guava 的原始辅助类,例如Ints:
int[] a = new int[]{1,2,3};
List<Integer> l = Ints.asList(a);
更详细的解释见this answer。
【讨论】: