`java.util.ArrayList`是最常用的工具类之一, 它是一个线程不安全的动态数组. 本文将对JDK 1.8.0中ArrayList实现源码进行简要分析. 底层采用 来存储, 每次添加元素前都会检查数组是否有足够空间容纳新的元素. 若数组空间不足则会进行扩容操作, 即创建一个容量更大的数 ...
分类:
编程语言 时间:
2017-11-20 01:14:22
阅读次数:
156
初稿:2017-11-19 13:05:57 4种链表 链表和数组的区别 数组初始容量一旦确定,不能再改变,适合要处理的数据量已知的情况。 未知要处理的数据量使用数组,可能造成空间浪费或容量不足,虽然有动态数组可扩容,但是频繁扩容会使系统产生很大的开销。 链表容量不限,长度与元素个数相同,但是需要额 ...
分类:
编程语言 时间:
2017-11-19 14:15:11
阅读次数:
202
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容。 2. 书面作业 本次作业题集集合 List中指定元素的删除(题集题目) 1.1 实验总结。并回答:列举至少2种在List中删除元素的方法。 这一题要求编写两个函数, 用` String [] s = line. ...
分类:
编程语言 时间:
2017-11-18 20:59:42
阅读次数:
211
ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayL ...
分类:
编程语言 时间:
2017-11-16 13:30:29
阅读次数:
124
Linux应用 编程深入 语言编程标准C程序设计七 经典C11程序设计 以下内容为阅读: 《标准C程序设计》(第7版) 作者:E. Balagurusamy(印), 李周芳译 清华大学出版社 2017.7 《21天学通C语言》(第7版) 作者:Bradley Jones Peter Aitken D ...
分类:
其他好文 时间:
2017-11-14 19:32:50
阅读次数:
159
STL Vector容器 Vector容器简介 vector是将元素置于一个动态数组中加以管理的容器。 vector可以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法,这个等下会详讲)。 vector尾部添加或移除元素非常快速。但是在中部或头部插入元素或移除元素比较费时 头文件:#i ...
分类:
其他好文 时间:
2017-11-06 00:05:11
阅读次数:
220
1、什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和IList接口 灵活的设置数组的大小 2、什么是LinkList 链表(Linked list)是一种常见的 ...
分类:
编程语言 时间:
2017-11-05 22:27:01
阅读次数:
320
1.动态数组(ArrayList) 动态数组(ArrayList)代表了可被单独索引的对象的有序集合。它基本上可以替代一个数组。但是,与数组不同的是,您可以使用索引在指定的位置添加和移除项目,动态数组会自动重新调整它的大小。它也允许在列表中进行动态内存分配、增加、搜索、排序各项。 2.哈希表(Has ...
arraylist是接口list的实现类,所以在使用过程中比较推荐使用list接口来实现,arraylist在程序开发过程中应用非常广泛,接下来,脚本之家的小编给大家总结了arraylist的使用,有需要的朋友可以参考下 1、什么是ArrayList ArrayList就是传说中的动态数组,用MSD ...
分类:
其他好文 时间:
2017-10-31 11:04:33
阅读次数:
212
一、动态数组 【new的局限性】 new将内存分配和对象构造组合在一起,同样delete将对象析构和内存释放组合在一起 我们分配单个对象时,通常希望将内存分配和对象初始化组合在一起(我们知道对象应有什么值),但分配一大块内存时,我们往往计划在这块内存上按需构造对象→将内存分配和对象构造分离,即我们可 ...
分类:
其他好文 时间:
2017-10-29 20:22:48
阅读次数:
176