public static void main(String[] args) {
Runtime run = Runtime.getRuntime();
long start = System.currentTimeMillis();
int index = 1000000;
ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < index; i++, --index) {
UUID id = UUID.randomUUID();
list.add(id.toString());
System.out.print(i);
}
}
这段代码大概需要7分钟左右的样子才能完成...
我想问下大家如何为arraylist提速吗....
jvm的设置为 -server -Xmx500m -Xms500

解决方案 »

  1.   

    怎么肯能也就10秒吧
    int index = 1000000;
            ArrayList<String> list = new ArrayList<String>();
            for (int i = 0; i < index; i++) {
     --index;
                UUID id = UUID.randomUUID();
                list.add(id.toString());
                System.out.println(i);
            }
      

  2.   

    16秒。
    去掉SYstem.out.println(i);  4秒多
      

  3.   


    不是提速,是内存溢出了,所以要-Xmx
      

  4.   

    感谢各位..原来是打印太慢了`=`=
     100w条添加到arraylist大概需要0.0659833333 分钟
    如果加上sysout 就要3.32468333 分钟
      

  5.   

    既然知道大小是1000000就没必要用ArrayList了,即使用也可以设定大小而不是一直不断的动态调整内存。
      

  6.   

    显然loop里面最耗时的操作是UUID.randomUUID()和System.out.println(),而不是list.add()
      

  7.   

    但是如果是500W个uuid.randomUUID()的话大概需要1分钟左右的样子有办法让它再快点吗..?