- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Collection和Map接口及其实现类总结.pdf
Collection和Map接口及其实现类总结
Collection接口
Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元
素(Elements)。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行。
Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的
“子接口”如List和Set。
所有实现Collection接口的类都必须提供两个标准的构造函数:无参数的构造函数用于
创建一个空的Collection,有一个Collection参数的构造函数用于创建一个新的
Collection,这个新的Collection与传入的Collection有相同的元素。后一个构造函数允许
用户复制一个Collection。
如何遍历Collection中的每一个元素?不论Collection的实际类型如何,它都支持一个
iterator()的方法,该方法返回一个迭代子,使用该迭代子即可逐一访问Collection中每
一个元素。典型的用法如下:
Iterator it = collection.iterator(); // 获得一个迭代子
while(it.hasNext()) {
Object obj = it.next(); // 得到下一个元素
}
由Collection接口派生的两个接口仅为List和Set。
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
List接口
List接口对Collection进行了简单的扩充,它的具体实现类常用的有ArrayList和
LinkedList。你可以将任何东西放到一个List容器中,并在需要时从中取出。ArrayList从
其命名中可以看出它是一种类似数组的形式进行存储,因此它的随机访问速度极快,而
LinkedList的内部实现是链表,它适合于在链表中间需要频繁进行插入和删除操作。在具体
应用时可以根据需要自由选择。前面说的Iterator只能对容器进行向前遍历,而
ListIterator则继承了Iterator的思想,并提供了对List进行双向遍历的方法。
List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够
使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java
的数组。
和下面要提到的Set不同,List允许有相同的元素。
除了具有Collection接口必备的iterator()方法外,List还提供一个listIterator
()方法,返回一个ListIterator接口,和标准的Iterator接口相比,ListIterator多了一
些add()之类的方法,允许添加,删除,设定元素,还能向前或向后遍历。
实现List接口的常用类有LinkedList,ArrayList,Vector和Stack。
LinkedList类
LinkedList实现了List接口,允许null元素。此外LinkedList提供额外的get,remove,
insert方法在LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈(stack),队
列(queue)或双向队列(deque)。
注意LinkedList没有同步方法。如果多个线程同时访问一个List,则必须自己实现访问
同步。一种解决方法是在创建List时构造一个同步的List:
List list = Collections.synchronizedList(new LinkedList(…));
ArrayList类
ArrayList实现了可变大小的数组。它允许所有元素,包括null。ArrayList没有同步。
size,isEmpty,get,set方法运行时间为常数。但是add方法开销为分摊的常数,添加
n个元素需要O(n)的时间。其他的方法运行时间为线性。
每个ArrayList实例都有一个容量(Capacity),即用于存储元素的数组的
您可能关注的文档
- (氧化沟)王新庄及五龙口污水处理厂实习报告.pdf
- 02.06“固定页面”的作用.pdf
- 06机械制造工艺学.pdf
- 18.制约大学英语教师专业化发展的因素探析.pdf
- 2005年北京市生活饮用水污染事故分析.pdf
- 2013级研究生《数值分析》试卷.pdf
- 20年全国女排联赛八一女排进攻战术特点分析02.pdf
- 4P_4C_4R营销理论比较分析_余晓钟.pdf
- 81例口服中成药药物不良反应分析.pdf
- 9019张门诊处方用药分析.pdf
- 五位一体教案教学教案设计.docx
- 思修与法基-教学教案分享.pptx
- 大学军事之《中国国防》题库分享.docx
- 2023版毛泽东思想和中国特色社会主义理论体系概论第五章-中国特色社会主义理论体系的形成发展.pdf
- 思修与法基 教学全案分享.docx
- 大学军事之《军事思想》题库分享.docx
- 《经济思想史》全套课件-国家级精品课程教案课件讲义分享.pdf
- 厦门大学国际金融全套资料(国家级精品课程)--全套课件.pdf
- 2023版毛泽东思想和中国特色社会主义理论体系概论第五章-中国特色社会主义理论体系的形成发展.docx
- 2023版毛泽东思想和中国特色社会主义理论体系概论第五章中国特色社会主义理论体系的形成发展分享.pdf
文档评论(0)