java集合框架综述-java开发java经验技巧

java集合框架综述-java开发java经验技巧

ID:30778957

大小:136.00 KB

页数:6页

时间:2019-01-03

java集合框架综述-java开发java经验技巧_第1页
java集合框架综述-java开发java经验技巧_第2页
java集合框架综述-java开发java经验技巧_第3页
java集合框架综述-java开发java经验技巧_第4页
java集合框架综述-java开发java经验技巧_第5页
资源描述:

《java集合框架综述-java开发java经验技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Java集合框架综述-编程开发技术Java集合框架综述原文出处:liujiacai(@jiacai2050)最近被陆陆续续问了几遍HashMap的实现,回答的不好,打算复习复习JDK中的集合框架,并尝试分析其源码,这么做一方面是这些类非常实用,掌握其实现能更好的优化我们的程序;另一方而是学习借鉴JDK是如何实现了这么一套优雅高效的类库,提升编程能力。在介绍具体适合类之前,木篇文章对Java中的集合框架做一个大致描述,从一个高的角度俯视这个框架,了解了这个框架的一些理念与约定,会大大帮助后面分析某个具体类,让我们开始吧。集合框架(collectionsframe

2、work)首先要明确,集合代表了一组对象(和数组一-样,但数组长度不能变,而集合能)。Java中的集合框架定义了一套规范,用来表示、操作集合,使具体操作与实现细节解耦。其实说白了,可以把一个集合看成一个微型数据库,操作不外乎“增删改查”四种操作,我们在学习使用一个具体的集合类时,需要把这四个操作的时空复杂度弄清楚了,基木上就可以说掌握这个类了。设计理念主要理念用一句话概括就是:捉供一套“小而美”的API。API需要对程序员友好,增加新功能时能让程序员们快速上手。为了保证核心接口足够小,最顶层的接口(也就是Collection与Map接口)并不会区分该集合是否口

3、J变(mutability),是否可更改(modifiability),是否可改变大小(rcsizability)这些细微的差别。相反,一些操作是可选的,在实现时抛出UnsupportedOperationException即可表示集合不支持该操作。集合的实现者必须在文档中声明那些操作是不支持的。为了保证最顶层的核心接口足够小,它们只能包含下面情况下的方法:1.基本操作,像Z前说的“增删改査”2.ThereisacompellingperformancereasonwhyanimportantimplementationwouldwanttooveiTidei

4、(・此外,所有的集合类都必须能提供友好的交互操作,这包括没有继承Collection类的数组对象。因此,框架捉供一套方法,让集合类与数组可以相互转化,并且可以把Map看作成集合。两大基类Collection与Map在集合框架的类继承体系中,最顶层有两个接口:•Collection表示一•组纯数据•Map表示一组key-value对一般继承自Collection或Map的集合类,会提供两个“标准”的构造函数:•没有参数的构造函数,创建一个空的集合类•有一个类型与基类(Collection或Map)相同的构造函数,创建一个与给定参数具有相同元素的新集合类因为接口中

5、不能包含构造函数,所以上面这两个构造函数的约定并不是强制性的,但是在口前的集合框架屮,所有继承自Collection或Map的子类都遵循这一约定。Collection«interface»«interface»Queue«mterface»ListSortedSetHashSetLinkedHashSetTreeSetArrayListVectorLinkedListPriorityQueuejava-collcction-hierarchy如上图所示,Collection类主要有三个接口:•Set表示不允许有重复元索的集合(Acollectionthatco

6、ntainsnoduplicateelements)•List表示允许有重复元素的集合(Anorderedcollection(alsoknownasasequence))•Queue?JDK1.5新增,与上面两个集合类主要是的区分在于Queue主要用于存储数据,而不是处理数据。(Acollectiondesignedforholdingelementspriortoprocessing.)Mapwinterface»MapClassHierarchyMap并不是一个真正意义上的集合(arenottruecollections),但是这个接口提供了三种“集合视

7、角”(collectionviews),使得可以像操作集合一样操作它们,具体如下:•把map的内容看作key的集合(map'scontentstobeviewedasasetofkeys)•把map的内容看作value的集合(map,scontentstobeviewedasacollectionofvalues)•把map的内容看作key-value映射的集合(maptcontentstobeviewedasasetofkey-valuemappings)总结今天先开个头,后面会陆陆续续来一系列干货,StayTunedo需要说明一点,今后所有源码分析都将基于

8、OracleJDK1.7.0_71,请

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。