【发布时间】:2013-06-10 19:14:18
【问题描述】:
好吧,我知道这是一个非常新手的问题,但我什么都没有想到。目前我正在尝试这个,但对于这么大的数字来说,这是效率最低的方法。任何人都可以帮助我。
int count = 66000000;
LinkedList<Integer> list = new LinkedList<Integer>();
for (int i=1;i<=count;i++){
list.add(i);
//System.out.println(i);
}
编辑:
实际上我已经对整个列表(队列)重复执行操作(比如在某个条件下删除一些元素并再次添加),因此必须迭代整个列表变得如此缓慢,因为这样的数字需要超过 10 分钟。
【问题讨论】:
-
你可以用 C 写它。:-)
-
根据用例,您还可以使用IntRange 或基于
Set或List实现类似的东西。 -
@jCoder 用例是:约瑟夫斯问题。所以我需要一个队列。
-
ArrayList 或 TIntArrayList 或
int[]会更快,但通常最快的方法是不做。我怀疑如果有更多上下文,您可能会首先了解如何消除对列表的需求。
标签: java