1. List.toArray()

java8中的hotspot会自己计算数组大小,不必指定数组的大小。
例如:String[] array = list.toArray(new String[0]);
而不必写为:String[] array = list.toArray(new String[list.size()]);

1
2
List<String> list = Arrays.asList("aaa", "bbb", "ccc");
String[] array = list.toArray(new String[0]);

2. List.stream()

java8 可以采用如下写法

1
2
List<String> list = Arrays.asList("aaa", "bbb", "ccc");
String[] array = list.stream().toArray(String[]::new);

3. google guava 库

建议使用java api 而不是下面此种方法

##3.1 使用FluentIterable类

1
2
List<String> list = Arrays.asList("aaa", "bbb", "ccc");
String[] array = FluentIterable.from(list).toArray(String.class);

##3.2 使用Iterables类

1
2
List<String> list = Arrays.asList("aaa", "bbb", "ccc");
String[] array = Iterables.toArray(list, String.class);