`
crazy木木木
  • 浏览: 51334 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ArrayList源代码详解2

 
阅读更多

对于add(int index,object o);该方法在特定位置插入元素,底层数组的元素都往后面移动一位,代价相当高,同理remove(int index)

 

对于ArrayList构造方法源代码详解:

public ArrayList(){

    this(10);//调用子类带参数的构造方法

}
public ArrayList(int initialCapacity){
    super();
    if(initialCapacity<0){
        //抛出异常
}
    this.elementData=new Object(initialCapacity);//定义一个数组
}

由此可见,如果我们用默认的构造方法构建ArrayList对象,则底层会生成10个元素长度的一个数组

add(E)方法详解:

public boolean add(E e){
    ensureCapacity(size+1);
    elementData[size++]=e;
    return true;
}
将制定的元素追加到list末尾,
public void ensureCapacity(int minCapacity){
    modCount++;
    int oldCapacity=elementData.length;
    if(minCapacity>oldCapacity){
            object oldData[]=elementData;
            int newCapacity=(oldCapacity*3)/2 + 1;
            if(newCapacity<minCapacity){
                newCapacity=minCapacity;
         
}
           elementData=Arrays.copyof(elementData,newCapacity);
    }
}
由此可以看出,ensureCapacity用于扩展数组本身,如果增加的元素个数超过了10个,则ArrayList底层数组长度为 原数组的长度的1.5倍+1

 

 

分享到:
评论

相关推荐

    (完整word)c#上位机串口通信助手源代码详解.doc

    "C#上位机串口通信助手源代码详解" 本文档将对C#上位机串口通信助手源代码进行详细的分析和解释,旨在帮助读者更好地理解串口通信的实现机制。 首先,让我们来了解串口通信的基本概念。串口通信是一种常用的数据...

    二维码识别源代码.pdf

    《二维码识别源代码详解》 二维码(Quick Response Code)作为一种高效的数据编码方式,在现代生活中得到了广泛应用,如商品追溯、信息传递、广告推广等。本文将深入解析二维码识别的源代码,帮助理解其工作原理和...

    java大学使用教程部分例题源代码

    Java大学使用教程部分例题源代码是学习Java编程的重要资源,尤其对于初学者而言,它提供了实际编程实践的宝贵机会。这些源代码是由教师提供的,意味着它们已经过验证,是正确的,可以作为学习和理解Java语言特性的...

    学生管理系统java源代码

    《学生管理系统Java源代码详解》 学生管理系统是计算机科学领域中常见的教学与实践项目,它主要目的是通过编程技术实现对学校学生信息的高效管理和查询。本文将深入解析一个基于Java语言开发的学生管理系统的源代码...

    Java编程详解(微课版)_源代码.rar

    Java编程详解(微课版)源代码压缩包包含的是一系列与Java编程相关的教学资源,主要目的是为了辅助学习者深入理解和实践Java编程语言。在这个压缩包中,你将找到一个名为"48709-Java编程详解(微课版)-源代码"的...

    Java仿千千静听音乐播放器源代码.rar

    【Java仿千千静听音乐播放器源代码详解】 该资源是一个基于Java编程语言实现的音乐播放器项目,旨在模仿著名的千千静听音乐播放器的功能。通过分析这个源代码,我们可以深入理解Java在多媒体应用开发中的应用,以及...

    C#实例 含源代码 下载

    在本资源中,标题"**C#实例 含源代码 下载**"表明这是一个关于C#编程语言的实例集合,其中包含了源代码供学习者下载和研究。这通常意味着你可以找到一系列用C#编写的程序或者函数示例,用于演示各种编程概念和技术。...

    java实战开发源代码(原封未动)

    【Java实战开发源代码详解】 Java作为一种广泛应用的高级编程语言,以其跨平台、面向对象的特点深受程序员喜爱。在“java实战开发源代码”这个主题中,我们主要关注的是实际项目中的编程实践,以及如何通过阅读和...

    java2入门经典源代码

    以下是一些基于该书籍源代码的Java知识点详解: 1. **Java基础语法**:Chap01至Chap09涵盖了Java的基础语法,包括变量声明、数据类型(如整型、浮点型、字符型和布尔型)、运算符、流程控制(如if语句、switch语句...

    基于java的BBS论坛源代码(增加验证码,找回密码等功能)

    【Java BBS论坛源代码详解】 在信息技术领域,Java是一种广泛应用的编程语言,尤其在构建Web应用程序方面表现卓越。本资源提供了一个基于Java实现的BBS(Bulletin Board System,电子公告板)论坛源代码,它包含了...

    C#俄罗斯方块源代码

    《C#语言实现的俄罗斯方块游戏源代码详解》 在编程领域,源代码是程序员的语言,通过阅读和理解源代码,我们可以深入了解程序的工作原理。本文将深入剖析一款基于C#语言开发的经典俄罗斯方块游戏的源代码,帮助读者...

    JDK1.6 源代码

    **JDK1.6源代码详解** JDK(Java Development Kit)是Oracle公司提供的Java编程环境,包含了编译器、运行时环境、调试工具和其他实用工具。JDK1.6,也被称为Java SE 6,是Java历史上的一个重要版本,发布于2006年,...

    传智播客_Java培训_毕向东_Java基础源代码

    《毕向东Java基础源代码详解》 这是一份源自传智播客,由资深讲师毕向东教授的Java培训课程的源代码集合。这份资源旨在帮助初学者深入理解Java编程语言的基础概念,通过实际的代码示例来提升学习效果。下面我们将...

    java贪吃蛇源代码

    【Java贪吃蛇源代码详解】 Java贪吃蛇游戏是一个经典的编程练习项目,它适合初学者,特别是对Java编程感兴趣的新手和菜鸟。这个项目旨在帮助开发者熟悉基本的编程概念,如控制台输入输出、循环、条件判断以及对象和...

    JAVA员工管理系统源代码

    **JAVA员工管理系统源代码详解** 本项目是一款基于JAVA语言开发的简单Windows桌面应用程序,主要针对初学者,旨在帮助他们理解J2SE(Java Standard Edition)的基础知识和应用。通过学习和分析这个源代码,开发者...

    俄罗斯方块Java源代码

    《俄罗斯方块Java源代码详解》 在编程领域,学习并理解经典的代码案例是提升技能的重要途径。"俄罗斯方块Java源代码"就是一个绝佳的学习素材,它不仅展示了基础的Java编程技术,还融合了游戏开发的基本逻辑。这篇...

    画图程序源代码程序源代码

    ### MyTestGeneric类详解 #### 类结构与功能概述 `MyTestGeneric` 类实现了一个简单的绘图程序。它包括一个主类 `MyTestGeneric` 和一个子类 `MyFrame99`,以及一个内部监听器类 `Monitor`。程序的功能是当用户在...

    JAVA语言程序设计源代码

    **JAVA语言程序设计源代码详解** Java是一种广泛使用的高级编程语言,由Sun Microsystems(现为Oracle Corporation的一部分)在1995年推出。它的设计目标是具有“一次编写,到处运行”的特性,这意味着编写的Java...

    JAVA AWT 俄罗斯方块源代码

    **JAVA AWT 俄罗斯方块源代码详解** Java AWT(Abstract Window Toolkit)是Java早期用于构建图形用户界面(GUI)的基础框架。这个标题提到的"JAVA AWT 俄罗斯方块源代码"是一份使用AWT库开发的经典游戏——俄罗斯...

Global site tag (gtag.js) - Google Analytics