`

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.
分享到:
评论

相关推荐

    02_JAVA基础300集最全教程_计算机语言发展史_java历史_java核心优势_java三大版本的区别

    02_JAVA基础300集最全教程_计算机语言发展史_java历史_java核心优势_java三大版本的区别

    Java基础 学习笔记 Markdownr版

    本学习笔记主要涵盖了Java的基础知识,包括面向对象、集合、IO流、多线程、反射与动态代理以及Java 8的新特性等方面,旨在帮助初学者或有经验的开发者巩固和提升Java编程技能。 1. 面向对象(OOP):Java的核心是...

    java基础教程

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

    传智播客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基础教程----精华版

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

    java web教程和资料电子书

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

    黑马程序员java基础试题、笔记

    Java是世界上最流行的编程语言之一,尤其在企业级应用开发领域占据主导地位。"黑马程序员java基础试题、笔记"这个压缩包资源为Java初学者和希望加入"黑马程序员"培训课程的学员提供了丰富的学习材料。这些资源包括...

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

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

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

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

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

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

    java实现rtsp/rtmp转m3u8/flv/hls/mp4等实现web直播和回放

    Java 实现 RTSP/RTMP 转 M3U8/FLV/HLS/MP4 是网络直播和视频回放的重要技术,它涉及到多种协议、工具和格式的交互。在这个场景下,Java 通常作为后端处理服务器,处理来自不同来源(如海康、大华等监控设备)的实时...

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

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

    Java实现Socket长连接和短连接

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

    Java Web程序设计教程.pdf

    标题《Java Web程序设计教程》与描述《Java Web程序设计教程 Java Web程序设计教程》中的知识点主要涵盖了Java Web应用开发领域的核心技术与实践。本书作为21世纪高等学校计算机规划教材,由范立锋与林果园共同编著...

    Java从零基础到精通详细笔记高清完整PDF版

    ### Unix/Linux基础命令 Unix/Linux系统是一个多用户多任务的操作...通过循序渐进的视频教程,学习者可以更好地理解Java编程的基础知识,从而为进一步学习Web开发、数据库交互、框架使用等高级主题打下坚实的基础。

    Java Web程序设计任务教程源码(黑马程序员)

    《Java Web程序设计任务教程》是一本专注于Java Web开发实践的书籍,由中国工信出版社出版,由传智播客旗下的高端教育品牌“黑马程序员”精心编著。这本书旨在帮助读者掌握Java Web开发的核心技术和实践方法,通过一...

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

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

    java实现对接LED屏

    Java 实现对接LED屏是一项技术任务,涉及到Java编程语言与硬件设备的交互,特别是与LED显示设备的通信。LED屏通常用于广告展示、信息传递等场合,而通过编程语言控制LED屏可以实现动态内容的展示和自定义效果。 ...

Global site tag (gtag.js) - Google Analytics