`
275553385
  • 浏览: 722049 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
文章分类
社区版块
存档分类
最新评论

ArrayList长度的初始化

 
阅读更多
    public static void show1() {
        int count = 2000000;
        Long start = System.currentTimeMillis();
        ArrayList<TestTime> at = new ArrayList<TestTime>(count);
        for (int i = 0; i < count; i++) {
            TestTime tt = new TestTime();
            at.add(tt);
        }
        Long end = System.currentTimeMillis();
        System.out.println(end - start);
    }

 有无ArrayList的长度初始化,执行效率是解决50%的提升。默认count为10。所以当初始化很大的集合时,需要设置下count。

 

ArrayList提供了三个构造器: 
public ArrayList(); 
默认的构造器,将会以默认(16)的大小来初始化内部的数组 
public ArrayList(ICollection); 
用一个ICollection对象来构造,并将该集合的元素添加到ArrayList 
public ArrayList(int); 
用指定的大小来初始化内部的数组

分享到:
评论
1 楼 275553385 2013-03-14  
      ArrayList<Integer> a = new ArrayList<Integer>();
        for (int j = 10; j < 20; j++) {
            a.add(j);
        }
        System.out.println("集合长度" + a.size());
        System.out.println(a.lastIndexOf(15));
        System.out.println("jihe = " + a);
        a.remove(1);
        System.out.println("jihe = " + a);
        System.out.println("集合转化数组"+a.toArray().length)

相关推荐

    VB 数组的初始化实例

    在VB中,可以创建零长度的数组,这在某些情况下可能很有用,例如等待用户输入数组大小后再进行初始化: ```vb Dim emptyArray() As String ``` 稍后,可以通过`ReDim`语句增加数组大小并赋值: ```vb ReDim empty...

    ArrayList源码分析(含jdk1.8).pdf

    除了上述直接与ArrayList初始化和扩容相关的方法,ArrayList类还定义了modCount这一成员变量,它是一个int类型的变量,用于记录 ArrayList 结构修改的次数。该变量在诸如添加、删除等会改变列表结构的操作中进行自增...

    C# Array和ArrayList,List区别

    **定义与初始化** Array是一种最基本的数据结构,用于存储相同类型的多个元素。创建Array数组的基本语法如下: ```csharp type[] arrayName = new type[size]; ``` 例如: ```csharp int[] a = new int[2]; // ...

    关于 ArrayList get(0)的异常JDK源码跟进

    总的来说,本篇博客通过对ArrayList`get(0)`异常的JDK源码分析,揭示了ArrayList的基本操作和异常处理机制,提醒开发者在使用ArrayList时注意数组边界和初始化。同时,这也是一次对Java集合框架的深入学习,有助于...

    jdk源码阅读一:ArrayList

    #### 五、ArrayList的构造函数与初始化 - **构造函数**:ArrayList提供了几种不同的构造函数,以满足不同的初始化需求。 - `ArrayList()`:创建一个空的ArrayList,初始容量为0。在这种情况下,ArrayList将使用一...

    C#中数组与arraylist

    例如,声明一个整型数组并初始化: ```csharp int[] numbers = new int[5] { 1, 2, 3, 4, 5 }; ``` 数组的优点包括直接访问(通过索引)速度快,内存分配连续,有利于CPU缓存。但缺点是大小固定,如果需要增加或...

    源码解析jdk7.0集合:ArrayList的底层实现原理.pdf

    通过几个关键的构造方法来初始化 ArrayList: 1. 无参数构造方法: ```java public ArrayList() { super(); this.elementData = EMPTY_ELEMENTDATA; } ``` 此方法创建一个空的 ArrayList 实例,默认数组容量...

    ArrayList源码分析

    - **JDK 1.7 及以后版本**:数组的初始化被移到了 `add` 方法中,这意味着如果 `ArrayList` 在创建时没有显式指定初始容量,那么它会在第一次调用 `add` 方法时初始化数组。 #### 三、手写 `ArrayList` 下面是一个...

    46-Java知识点 手写ArrayList1

    4. 如果要扩容的数比 ArrayList 的最大长度还要大,那么在不溢出的情况下,要么选 ArrayList 的最大长度,要么是 Integer 的长度。这二者就差 8 个数。 插入元素 在插入元素时,需要扩容数组,然后将数组中要插入...

    超详细JDK1.8 ArrayList集合默认长度及扩容分析

    这个数组被用来初始化ArrayList内部存储数据的`elementData`字段。默认构造方法如下: ```java public ArrayList() { this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA; } ``` 当使用默认构造方法创建...

    c# 数组与集合(ArrayList)游戏开发高级使用举例

    同时,为了提高代码的可读性和减少错误,应始终确保引入System.Collections命名空间,并正确实例化ArrayList对象。 在实际应用中,我们可以通过创建一个模拟的游戏场景来演示如何使用数组和ArrayList。例如,可以...

    ArrayList底层原理

    默认情况下,ArrayList的初始容量为10,当达到容量极限时,会按照一定规则(通常是原容量的1.5倍)创建一个新的更大容量的数组,并将旧数组中的元素复制到新数组中。这个过程虽然能够保证ArrayList的动态增长,但是...

    第二章 ArrayList源码解析1

    创建ArrayList时,会初始化一个transient关键字修饰的elementData数组。transient表示该字段不会在序列化过程中被保存。尽管如此,ArrayList还是实现了Serializable接口,因此它具有序列化能力。ArrayList通过...

    java——ArrayList-源码解析.docx

    - 从 Collection 初始化的构造器会将传入的集合转换为数组,并用这个数组初始化 ArrayList。 在添加元素(add 方法)时,ArrayList 的动态扩容机制非常重要。当数组空间不足时,ArrayList 会自动扩大其容量。扩容...

    Java初始化List方法代码实例

    Java初始化List方法代码实例 Java初始化List方法代码实例主要介绍了Java中初始化List的六种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值。 首先,List是Java集合框架中的...

    ArrayList的学习821.docx

    当首次添加元素时,这个数组会被初始化,初始容量即为10。随着元素的增加,ArrayList会进行动态扩容。每次add操作时,ArrayList首先会检查当前数组的空间是否足够,如果不够,它会通过`ensureCapacityInternal`方法...

    ArrayList源码解析(数据结构及底层实现)(csdn)————程序.pdf

    ArrayList 提供了几个构造方法,其中最常见的是无参构造方法,它会初始化一个空的 ArrayList,并将其内部数组设置为 `DEFAULTCAPACITY_EMPTY_ELEMENTDATA`,这是一个长度为 0 的空数组,这样做是为了延迟初始化,...

    Java 集合框架(2-9)-Collection - ArrayList 源码解析.pdf

    如果指定了初始容量,并且容量大于0,那么会初始化一个相应大小的数组。 ArrayList的构造函数有两种形式:一种是无参构造,创建一个初始容量为10的ArrayList;另一种是有参构造,允许指定初始容量。如果传入的初始...

    Arraylist的一些值得思考的问题

    那初始化时指定开辟空间长度是否更有利于内存资源节省 3、扩容是在什么时候扩的,达到的阈值是多少?初始申请的空间与扩容阈值之间的关系,围绕第二次扩容阈值与初始指定申请空间的关系说明 4、模拟写一个新增或删除...

    Java基础第三章_withMarginNotes.pdf

    动态初始化在声明数组时仅指定长度,赋值操作随后进行;静态初始化则在声明时同时指定长度和初始值。 3. **元素引用**:通过`数组名[下标]`的方式访问和修改元素,下标可以是整型常量或表达式。 4. **默认初始化值**...

Global site tag (gtag.js) - Google Analytics