学完Java集合框架不愁找不到心仪的工作

Java集合框架博大精深,玩法多元,而且近日,框架知识也成了面试官中意的对象,就更使的

框架在Java系统学习中越来越重要,前面我也讲了Java的各种用法和注意事项,今天所做的就是收一下尾。今天我们主要说一下Java集合框架中的其它集合类

上面已经对Java集合框架作了详细的介绍,包括Collection和Map两个接口及它们的抽象类和常用的具体实现类,下面主要介绍一下其它几个特殊的集合类,Vector、Stack、HashTable、ConcurrentHashMap以及CopyOnWriteArrayList。

1.Vector(继承自AbstractList,实现了 List,Cloneable, Serializable接口)

前面我们已经提到,Java设计者们在对之前的容器类进行重新设计时保留了一些数据结构,其中就有Vector。用法上,Vector与ArrayList基本一致,不同之处在于Vector使用了关键字synchronized将访问和修改向量的方法都变成同步的了,所以对于不需要同步的应用程序来说,类ArrayList比类Vector更高效。

构造方法摘要

Vector()
特有方法摘要

void addElement(E obj)将指定的组件添加到此向量的末尾,将其大小增加 1。void copyInto(Object[] anArray)将此向量的组件复制到指定的数组中。E elementAt(int index)返回指定索引处的组件。Enumeration elements()返回此向量的组件的枚举。void ensureCapacity(int minCapacity)增加此向量的容量(如有必要),以确保其至少能够保存最小容量参数指定的组件数。E firstElement()返回此向量的第一个组件(位于索引 0) 处的项)。void insertElementAt(E obj, int index)将指定对象作为此向量中的组件插入到指定的 index 处。E lastElement()返回此向量的最后一个组件。void removeAllElements()从此向量中移除全部组件,并将其大小设置为零。boolean removeElement(Object obj)从此向量中移除变量的第一个(索引最小的)匹配项。void removeElementAt(int index)删除指定索引处的组件。protected void removeRange(int fromIndex, int toIndex)从此 List 中移除其索引位于 fromIndex(包括)与 toIndex(不包括)之间的所有元素。void setElementAt(E obj, int index)将此向量指定 index 处的组件设置为指定的对象。void setSize(int newSize)设置此向量的大小。
2.Stack(如果想要更多的企业求职加分项目,案例,可以来一下我的Java群632119504,每天都会精挑细选一个特效,项目出来详细讲解,分享!包括答疑解惑!)

Stack,栈类,是Java2之前引入的,继承自类Vector。

3.HashTable

HashTable和前面介绍的HashMap很类似,它也是一个散列表,存储的内容是键值对映射,不同之处在于,HashTable是继承自Dictionary的,HashTable中的函数都是同步的,这意味着它也是线程安全的,另外,HashTable中key和value都不可以为null。

上面的三个集合类都是在Java2之前推出的容器类,可以看到,尽管在使用中效率比较低,但是它们都是线程安全的。下面介绍两个特殊的集合类。

4.ConcurrentHashMap

Concurrent,并发,从名字就可以看出来ConcurrentHashMap是HashMap的线程安全版。同HashMap相比,ConcurrentHashMap不仅保证了访问的线程安全性,而且在效率上与HashTable相比,也有较大的提高。关于ConcurrentHashMap的设计,我将会在下一篇关于并发编程的博客中介绍,敬请关注。

5.CopyOnWriteArrayList

CopyOnWriteArrayListhttp://xingkongmj.com/academy.html,是一个线程安全的List接口的实现,它使用了ReentrantLock锁来保证在并发情况下提供高性能的并发读取。

五、总结

到这里,对于Java集合框架的总结就结束了,还有很多集合类没有在这里提到,更多的还是需要大家自己去查去用。通过阅读源码,查阅资料,收获很大。

Java集合框架主要包括Collection和Map两种类型。其中Collection又有3种子类型,分别是List、Set、Queue。Map中存储的主要是键值对映射。

规则集Set中存储的是不重复的元素,线性表中存储可以包括重复的元素,Queue队列描述的是先进先出的数据结构,可以用LinkedList来实现队列。

效率上,规则集比线性表更高效。

ArrayList主要是用数组来存储元素,LinkedList主要是用链表来存储元素,HashMap的底层实现主要是借助数组+链表+红黑树来实现。

Vector、HashTable等集合类效率比较低但都是线程安全的。包http://xingkongmj.com/news/id/72.htmljava.util.concurrent下包含了大量线程安全的集合类,效率上有较大提升。

第三页:30个人面试,就我会这个框架,所以HR选了我(三)

第二页:万万没想到,Collection接口还能这样学

第一页:Java集合框架(一)

这个就是第四页了,至于接口与接口之间实例对比,笔墨太长,后续ConcurrentHashMap内容请关注本头条号,每天定时更新哦。
所用知识点(http://xingkongmj.com/news/id/73.html关键技术):

纯java代码。游戏框架。swing界面。纯java代码。游戏框架。swing界面。纯java代码。游戏框架。swing界面。纯java代码。游戏框架。swing界面。纯java代码。游戏框架。swing界面

设计思路:(如果想要更多的企业求职加分项目,案例,可以来一下我的Java群632119504,每天都会精挑细选一个特效,项目出来详细讲解,分享!包括答疑解惑!)

代码通过面向对象的设计思路,将系统分为Mario,物品,敌人,背景,窗体显示等多个Java类,共1600多行代码,运用了Java的Swing、http://xingkongmj.com/news/id/74.htmlIO操作、线程、类集等技术,并完全按照Java编码规范进行命名和编写。

开发流程:

1、首先由java代码编写人员设计并提出编写方案,依据具体设计向图片美工提出所需要的图片格式、类型、数量、大小等要求

2、美工依照提出的设计绘制并编辑图片,同时程序员进行各个类的功能设计,搭建工程总体框架。

3、美工将图片完成后,程序员通过IO操作将图片导入到程序中完成游戏界面。

4、程序员分别完成Mario的控制,敌人、Mario和物品的显示。

5、程序员完成Mario与敌人及物品的碰撞的判断。

6、美工提供游戏的背景音乐,程序员将音乐导入到程序中

7、对完成的游戏进行测试并修改bug

8、对游戏进行优化,提高性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值