加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 服务器 > 安全 > 正文

自己动手实现java数据结构(一) 向量

发布时间:2021-04-02 23:03:00 所属栏目:安全 来源:网络整理
导读:1.向量介绍 计算机程序主要运行在内存中,而内存在逻辑上可以被看做是连续的地址。为了充分利用这一特性,在主流的编程语言中都存在一种底层的被称为 数组(Array) 的数据结构与之对应。在使用数组时需要事先声明 固定的大小 以便程序在运行时为其开辟内存空

  jdk的向量数据结构,Vector主要通过对方法添加synchronized关键字,用悲观锁来实现线程安全,效率较低。而另一个向量的实现,ArrayList则是采用了快速失败的,基于版本号的乐观锁对并发提供一定的支持。

  2.没有站在足够高的角度构建数据结构容器的关系

  java在设计自身的数据结构容器的架构时,高屋建瓴的设计出了一个庞大复杂的集合类型关系。这使得java的数据结构容器API接口非常的灵活,各种内部实现迥然不同的容器可以很轻松的互相转化,使用者可以无负担的切换所使用的数据结构容器。同时,这样的设计也使编写出抽象程度很高的API接口成为可能,减少了大量的重复代码。

  3.接口不够丰富

  限于篇幅,这里仅仅列举和介绍了主要的向量接口,还有许多常见的需求接口没有实现。其实,在理解了前面内容的基础之上,实现一些其它常用的接口也并不困难。

  4.异常处理不够严谨

  在当前版本的下标越界校验中,没有对容器可能产生的各种异常进行仔细的归类和设计,抛出的是最基础的RunTimeException,这使得用户无法针对容器抛出的异常类型进行更加细致的处理。

5.3 "自己动手实现java数据结构"系列博客后续

  这是"自己动手实现java数据结构"系列的第一篇博客,因此选择了相对比较简单的"向量"数据结构入手。

  我的目标并不在于写出非常完善的数据结构实现,而是尝试着用最易于接受的方式使大家熟悉常用的数据结构。如果读者能够在阅读这篇博客之后,在理解思路,原理的基础之上,自己动手实现一个初级,原始的向量数据结构,以及在此基础上进行优化,那么这篇博客的目标就完美达成啦。

  本系列博客的代码在我的 github上:https://github.com/1399852153/DataStructures ,欢迎交流 0.0。

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读