将列表的前 n 个元素存储在数组中的最快方法是什么?
考虑到这种情况:
int n = 10;
ArrayList<String> in = new ArrayList<>();
for(int i = 0; i < (n+10); i++)
in.add("foobar");
选项1:
String[] out = new String[n];
for(int i = 0; i< n; i++)
out[i]=in.get(i);
选项 2:
String[] out = (String[]) (in.subList(0, n)).toArray();
选项3: 有更快的方法吗?也许使用 Java8 流?
原文由 Joel 发布,翻译遵循 CC BY-SA 4.0 许可协议
选项 1 比选项 2 快
因为选项2创建了一个新的
List
引用,然后从List
创建了一个n
元素数组(选项1完美地调整了输出数组的大小)但是,首先您需要修复一个错误。使用<
(不是<=
)。喜欢,