`

8_(JAVA基础300集最全教程 学习)Collectioin各容器实现方式

阅读更多
1.ArrayList :
实现方式(非可序化Object数组):private transient Object[] elementData;
扩容方式:历史值的3倍与2取商再加1((oldCapacity * 3)/2 + 1);
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;
            // minCapacity is usually close to size, so this is a win:
            elementData = Arrays.copyOf(elementData, newCapacity);
	}
    }


注意到代码中有这么一处:elementData[--size] = null;后面给出的注释是: Let gc do its work(让GC回收),这告诉我们在代码开发中也可以在对于不再使用的空间,将引用置为Null,让gc更好的回收空间。

  public void clear() {
	modCount++;

	// Let gc do its work
	for (int i = 0; i < size; i++)
	    elementData[i] = null;

	size = 0;
    }

2.
分享到:
评论

相关推荐

    毕向东_Java基础视频课堂笔记

    标题《毕向东_Java基础视频课堂笔记》表明,这份文档是一份关于Java基础的视频课程的详细笔记,该课程由传智播客的毕向东老师主讲,并且共分为35个教学日。由于文档是通过OCR扫描生成,可能会有文字识别错误或遗漏,...

    Java基础教程完整版

    Java基础教程完整版 Java基础教程完整版是JAVE_LOVER作者提供的一系列Java教程,总共包含18个章节,涵盖了JavaSE基本知识点、UML建模、单元测试等内容。下面是对每个章节的详细介绍: Java学习系列(一):Java的...

    Word2VEC_java 源代码

    总之,这个“Word2VEC_java”项目提供了一个在Java环境中实现Word2Vec的基础框架。通过学习和实践,开发者不仅可以掌握Word2Vec的实现细节,还能提升在自然语言处理领域的技能。不过,由于描述中提到这个版本未经...

    java基础教程

    《Java基础教程(第3版)》以通俗易懂的语言,循序渐进地向读者介绍了Java语言编程的基础知识。针对较难理解的问题,所列举的例子都是由简到繁,便于读者掌握Java编程技巧。在第3版中加大了面向对象的知识容量,补充...

    韩顺平_循序渐进学Java零基础【完整笔记】1

    【描述】:这个课程是为初学者设计的,旨在通过系统的学习帮助学生掌握Java编程的基础。课程分为三个阶段,详细讲解了Java语言的核心概念、就业前景以及在不同领域的应用。 【标签】:虽然没有具体的标签,但可以...

    传智播客JAVA全套种子共20G

    《传智播客成都中心蔡世友JavaScript面向对象及ExtJS基础教程》2.79G 《2010传智播客struts2.1.8视频教程》1.09G 《EJB3.0视频教程》180M 《JDBC视频教程》664M 《jpa详解视频教程》165M 《spring2.5视频教程》365M ...

    Java语言程序设计-进阶篇(原书第8版)_______(基础).part2.rar

    Java语言程序设计-进阶篇(原书第8版)_______(基础)

    Java 中文入门学习手册合集[chm版]

    第三章 Java程序设计基础 第四章 Java应用程序的基本框架 第五章 Java的类 第六章 Java图形用户接口 第七章 多线程 第八章 Java的"异常" 第九章 Java输入输出操作 java新手教程.chm JAVA_精通swing程序设计...

    java基础教程----精华版

    Java是一种广泛使用的面向对象的编程语言,以其平台独立性、安全性、健壮...这份"java基础教程----精华版"应该涵盖了这些主题,并且可能还有更多的实践指导和示例代码,对于学习和巩固Java编程基础是非常有价值的资源。

    Java2实用教程第六版课后习题答案答案

    8. **集合框架**:Java集合框架包括List、Set、Map等接口以及ArrayList、LinkedList、HashSet、HashMap等实现类,它们提供了高效的数据存储和操作方式。 9. **线程**:Java支持多线程编程,通过Thread类和Runnable...

    jdk1.8.0_144 (Java SE Development Kit 8u144)

    Java Standard Edition (SE) Development Kit 是Oracle公司提供的用于开发和部署Java应用程序的基础工具集。JDK是Java开发环境的核心组成部分,包含了Java编译器、Java运行时环境(JRE)、Java调试器以及其他开发...

    java web教程和资料电子书

    Java Web教程和资料电子书是一份宝贵的资源,它旨在引导初学者和有一定基础的开发者深入理解和掌握Java Web开发技术。这份教程涵盖了Java面向对象编程在Web环境中的应用,是提升编程技能的重要参考资料。 首先,...

    Java基础学习教程J2SE讲义ppt上半部分

    Java基础学习教程J2SE讲义ppt JAVA概述 JAVA语言基础 面向对象编程 JAVA异常处理机制 数组 JAVA常用类 JAVA容器类 JAVA流技术 JAVA多线程机制 JAVA网络编程 GUI编程

    下载 传智播客_Springmvc+Mybatis由浅入深全套视频教程

    MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集的过程,可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects)映射成数据库中的记录。 #### 主要特点 1. **SQL...

    Java实现Socket长连接和短连接

    综上所述,Java实现Socket长连接和短连接涉及网络通信基础、连接管理、异常处理等多个方面,开发者需要根据实际需求权衡选择合适的方式。通过深入理解这些概念和技术,可以有效地优化网络服务,提升应用的性能和用户...

    Java实现ocr图片识别(PaddleOCR)飞桨

    在本项目中,我们将探讨如何利用Java集成PaddleOCR,一个由飞桨(PaddlePaddle)框架支持的开源OCR系统,来实现高效且精准的图像文字识别。 首先,PaddleOCR是百度公司推出的深度学习OCR工具,它具有轻量级、高精度...

    JAVA_API1.6文档(中文)

    java.lang 提供利用 Java 编程语言进行程序设计的基础类。 java.lang.annotation 为 Java 编程语言注释设施提供库支持。 java.lang.instrument 提供允许 Java 编程语言代理检测运行在 JVM 上的程序的服务。 java....

    Java_CMPP3.0_协议实现

    在Java实现中,通常会创建一个消息抽象类,用于封装CMPP协议的各种消息,通过面向对象的方式来表示不同的消息类型。这样可以方便地管理和操作消息,比如设置和获取属性,进行消息校验,以及编码和解码消息报文。 ...

    Java-JDK-11.0.8(Windows &amp;amp; Mac os) 下载

    对于Mac OS用户,"jdk-11.0.8_osx-x64_bin.dmg"是一个磁盘映像文件,用户需双击打开,然后将Java SDK拖入到"Applications"或指定的文件夹中进行安装。在Mac上,安装完成后通常需要手动配置环境变量,通过修改"~/....

    几个推荐算法的java实现

    总的来说,这个项目提供了多种推荐算法的Java实现,对于学习和应用推荐系统,尤其是对Java编程感兴趣的开发者,是非常有价值的资源。通过理解和实践这些算法,不仅可以提升对推荐系统的理解,也有助于提高解决实际...

Global site tag (gtag.js) - Google Analytics