cjzsb123 2017-01-17 03:22 采纳率: 0%
浏览 1182

关于ArrayList插入速度的问题

 public class test1 {
    public static void main(String[] args) {

                //第一个列表
        ArrayList<Integer> list1 = new ArrayList<Integer>();
        long start1 = System.currentTimeMillis();
        for (int i = 0; i < 10000000; i++) {
            list1.add(i);
        }
        System.out.println("第一个列表花费" + (System.currentTimeMillis() - start1) + "毫秒");


        //第二个列表
        ArrayList<Integer> list2 = new ArrayList<Integer>();
        long start2 = System.currentTimeMillis();
        for (int i = 10000000; i < 20000000; i++) {
            list2.add(i);
        }
        System.out.println("第二个列表花费" + (System.currentTimeMillis() - start2) + "毫秒");

    }
}

同样都是插入1000万条数据。
为什么第一个花费了6000ms,而第二个只用了500ms,差距怎么这么大?
我把第二个列表的代码移到前面,结果还是一样:先运行的花费时间久,后运行的花费的时间很短

  • 写回答

5条回答 默认 最新

  • Book1346 2017-01-17 03:33
    关注

    逻辑和语法上,是没有差别的。特别是你两个列表的类型都是ArrayList类型,所以结果运行的时间应该是一致的。
    将你的代码在我自己机子上测试了一下,得出的结论也是二者基本相等,没有出现你说的这种情况。
    应该是你运行程序的Eclipse的问题吧。或者是初始化的原因。

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题