小编dan*_*ton的帖子

277
推荐指数
4
解决办法
17万
查看次数

Collection.toArray()与Collection.stream()。toArray()

考虑以下代码:

List<String> myList = Arrays.asList(1, 2, 3);
String[] myArray1 = myList.toArray(new String[myList.size()]);
String[] myArray2 = myList.stream().toArray(String[]::new);
assert Arrays.equals(myArray1, myArray2);
Run Code Online (Sandbox Code Playgroud)

在我看来,使用流要简单得多。

因此,我测试了每个的速度。

List<String> myList = Arrays.asList("1", "2", "3");
double start;

start = System.currentTimeMillis();
for (int i = 0; i < 10_000_000; i++) {
    String[] myArray1 = myList.toArray(new String[myList.size()]);
    assert myArray1.length == 3;
}
System.out.println(System.currentTimeMillis() - start);

start = System.currentTimeMillis();
for (int i = 0; i < 10_000_000; i++) {
    String[] myArray2 = myList.stream().toArray(String[]::new);
    assert myArray2.length == 3;
}
System.out.println(System.currentTimeMillis() - start); …
Run Code Online (Sandbox Code Playgroud)

java collections java-stream

2
推荐指数
1
解决办法
1496
查看次数

标签 统计

java ×2

collections ×1

java-stream ×1

stream ×1

string ×1