自己动手实现java数据结构(一) 向量(4)
jdk的向量数据结构,Vector主要通过对方法添加synchronized关键字,用悲观锁来实现线程安全,效率较低。而另一个向量的实现,ArrayList则是采用了快速失败的,基于版本号的乐观锁对并发提供一定的支持。 2.没有站在足够高的角度构建数据结构容器的关系java在设计自身的数据结构容器的架构时,高屋建瓴的设计出了一个庞大复杂的集合类型关系。这使得java的数据结构容器API接口非常的灵活,各种内部实现迥然不同的容器可以很轻松的互相转化,使用者可以无负担的切换所使用的数据结构容器。同时,这样的设计也使编写出抽象程度很高的API接口成为可能,减少了大量的重复代码。 3.接口不够丰富限于篇幅,这里仅仅列举和介绍了主要的向量接口,还有许多常见的需求接口没有实现。其实,在理解了前面内容的基础之上,实现一些其它常用的接口也并不困难。 4.异常处理不够严谨在当前版本的下标越界校验中,没有对容器可能产生的各种异常进行仔细的归类和设计,抛出的是最基础的RunTimeException,这使得用户无法针对容器抛出的异常类型进行更加细致的处理。 5.3 "自己动手实现java数据结构"系列博客后续这是"自己动手实现java数据结构"系列的第一篇博客,因此选择了相对比较简单的"向量"数据结构入手。 我的目标并不在于写出非常完善的数据结构实现,而是尝试着用最易于接受的方式使大家熟悉常用的数据结构。如果读者能够在阅读这篇博客之后,在理解思路,原理的基础之上,自己动手实现一个初级,原始的向量数据结构,以及在此基础上进行优化,那么这篇博客的目标就完美达成啦。 本系列博客的代码在我的 github上:https://github.com/1399852153/DataStructures ,欢迎交流 0.0。 (编辑:ASP站长网) |