zoukankan      html  css  js  c++  java
  • ensureCapacity增加此 ArrayList 实例的容量,以确保它至少能够容纳最小容量参数所指定的元素数。

    扩容原则:

    若参数值大于底层数组长度的1.5倍,则数组的长度就扩容为这个参数值;若小于底层数组长度的1.5倍,则数组长度就扩容为底层数组长度的1.5倍。

    ensureCapacity提高效率

      final int N = 10000000;
                            Object obj = new Object();
                            
                            //没用调用ensureCapacity()方法初始化ArrayList对象
                            ArrayList list = new ArrayList();
                            long startTime = System.currentTimeMillis();
                            for(int i=0;i<=N;i++){
                                    list.add(obj);
                            }
                            long endTime = System.currentTimeMillis();
                            System.out.println("没有调用ensureCapacity()方法所用时间:" + (endTime - startTime) + "ms");
                            
                            //调用ensureCapacity()方法初始化ArrayList对象
                            list = new ArrayList();
                            startTime = System.currentTimeMillis();
                            list.ensureCapacity(N);//预先设置list的大小
                            for(int i=0;i<=N;i++){
                                    list.add(obj);
                            }
                            endTime = System.currentTimeMillis();
                            System.out.println("调用ensureCapacity()方法所用时间:" + (endTime - startTime) + "ms");

    没有调用ensureCapacity()方法所用时间:531ms
    调用ensureCapacity()方法所用时间:388ms

    如果数据量比较小,就没啥差异了

  • 相关阅读:
    决定迁移过来,深耕于此。。。
    一篇搞定MongoDB
    一篇搞定vue请求和跨域
    自定义全局组件
    一篇搞定vue-router
    一篇搞定Vuex
    vue系列
    .Vue.js大全
    一篇搞定spring Jpa操作数据库
    自定义admin
  • 原文地址:https://www.cnblogs.com/pangjing/p/10341539.html
Copyright © 2011-2022 走看看