【发布时间】:2020-04-05 07:00:02
【问题描述】:
public static void main(String[] args) {
List<Long> list = new ArrayList<>();
for (long i = 1; i < 100000000; i++) {
list.add(i);
}
}
这个循环需要很长时间才能将值插入列表中,JAVA 8 中是否有任何功能,使用相同的任务将在最短的时间内执行。
【问题讨论】:
-
更大的问题是你想用 (100000000 -1) 个元素的
List做什么?使用LongStream.iterate对它们进行迭代也是可行的。 -
这确实是一个很大的数字,尝试多线程并将循环拆分为两个或更多线程:) 但它不会按顺序进行
-
这可以通过使用
long[] list = new long[100000000];、在循环中将i声明为int和list[i] = i;来显着改善(除非你需要一个列表,这不太可能) -
@DickensAS 是的,我使用连接进行多线程处理。但希望使用 Java 8 做同样的事情。感谢您的评论