如何以最快的方式获取存储在数组中的列表的前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流吗?
O(n)
。实际性能会有所不同。 - Elliott FrischsubList
和toArray
的源代码。 - njzk2