java提高篇之集合大家族-编程开发技术

java提高篇之集合大家族-编程开发技术

ID:30768836

大小:71.50 KB

页数:7页

时间:2019-01-03

java提高篇之集合大家族-编程开发技术_第1页
java提高篇之集合大家族-编程开发技术_第2页
java提高篇之集合大家族-编程开发技术_第3页
java提高篇之集合大家族-编程开发技术_第4页
java提高篇之集合大家族-编程开发技术_第5页
资源描述:

《java提高篇之集合大家族-编程开发技术》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、java提高篇Z集合大家族-编程开发技术java提高篇之集合大家族原文出处:chenssy在编写jeiva程序中,我们最常用的除了八种基本数据类型,String对象外还冇一个集合类,在我们的的程序中到处充斥着集合类的身影!施阳中集合大家族的成员实在是太丰富了,冇常用的ArrayList>HashMap>HashSet,也冇不常用的Stack、Queue,有线程安全的Vector>HashTable,也有线程不安全的LinkedList>TreeMap等等!上而的图展示了整个集合大家族的成员以及他们Z间的关系。下而就上而的各个接口、基类做一些简单的介绍(主要介绍各个集合的特点。区别),

2、更加详细的介绍会在不久的将来-一讲解。一、Collection接口Collection接口是最基本的集合接口,它不提供直接的实现,JeiveiSDK提供的类都是继承自Collection的“子接口”如List和SetoCollection所代表的是一种规则,它所包含的元素都必须遵循一条或者多条规则。如有些允许重复而有些则不能重复、有些必须要按照顺序插入而有些则是散列,有些支持排序但是有些则不支持。在Jewel中所有实现了Collection接口的类都必须提供两套标准的构造函数,一个是无参,用于创建一个空的Collection,一个是带冇Collection参数的冇参构造函数,用于创建

3、一个新的Collection,这个新的Collection与传入进来的Collection具备相同的元素。二、List接口List接口为Collection直接接口。List所代表的是冇序的Collection,即它用某种特定的插入顺序来维护元素顺序。用户可以对列表中每个元素的插入位置进行精确地控制,同吋可以根据元素的整数索引(在列表屮的位置)访问元素,并搜索列表中的元素。实现List接口的集合主要有:ArrayList>LinkedList>Vector、Stacko2.1、ArrayListArrayList是一个动态数组,也是我们最常用的集合。它允许任何符合规则的元素插入甚至包

4、括nullo每一个ArrayList都有一个初始容量(10),该容量代表了数组的大小。随着容器中的元素不断增加,容器的大小也会随着增加。在每次向容器屮增加元索的同时都会进行容量检查,当快溢出时,就会进行扩容操作。所以如果我们明确所插入元素的多少,最好指定一个初始容量值,避免过多的进行扩容操作而浪费时间、效率。size、isEmpty、get^set>iterator和listiterator操作都以固定时间运行。add操作以分摊的固定时间运行,也就是说,添加n个元素需耍0(n)时间(由于要考虑到扩容,所以这不只是添加元素会带来分摊固定时间开销那样简单)。?????ArrayList擅

5、长于随机访问。同时ArrayList是非同步的。2.2、LinkedList同样实现List接口的LinkedList与ArrayList不同,ArrayList是一个动态数组,而LinkedList是一个双向链表。所以它除了冇ArrayList的基本操作方法外还额外提供了get,remove,insert方法在LinkedList的首部或尾部。由于实现的方式不同,LinkedList不能随机访问,它所有的操作都是耍按照双重链表的需要执行。在列表中索引的操作将从开头或结尾遍历列表(从靠近指定索引的一端)。这样做的好处就是可以通过较低的代价在List小进行插入和删除操作。与ArrayL

6、ist一样,LinkedList也是非同步的。如果多个线程同时访问一个List,则必须自己实现访问同步。一种解决方法是在创建List吋构造一个同步的List:List1ist二Collections.synchronizedList(newLinkedList(•••));2.3、Vector与ArrayList和似,但是Vector是同步的。所以说Vector是线程安全的动态数组。它的操作与ArrayList几乎一样。2.4、StackStack继承iVector,实现一个后进先出的堆栈。Stack捉供5个额外的方法使得Vector得以被当作堆栈使用。基本的push和pop方法,还

7、有peek方法得到栈顶的元素,empty方法测试堆栈是否为空,search方法检测一个元素在堆栈屮的位置。Stack刚创建后是空栈。三、Set接口Set是一种不包描重复元素的Collectiono它维持它自己的内部排序,所以随机访问没有任何意义。与List-样,它同样运行null的存在但是仅有一个。由于Set接口的特殊性,所冇传入Set集合中的元索都必须不同,同时要注意任何可变对象,如果在对集合中元素进行操作时,导致el.equals(c2)==truc,

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

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

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