`
王者无敌Java
  • 浏览: 69639 次
  • 性别: Icon_minigender_1
  • 来自: 盐城->长沙->深圳
社区版块
存档分类
最新评论

有关队列所引发的一些思考

阅读更多
       今天下午(准确的说应该是昨天下午,现在已经凌晨1点),我一如既往的来到蓝杰实训中心进行编程练习,经过两个半天的苦心研究和不断尝试以及胡哥的相关指导,我初步完成了五子棋的人人对战模式,颇有成就感,感觉我的Java编程实践的学习慢慢走上正轨。
        晚上胡哥讲的是队列,是有关数据结构的知识,上学期,这门主修课我是用心听了,所以易于接受,很快就跟上了胡哥的节奏。一开始,我仅仅以为这只是在复习以前所学过的知识,可是,听着听着,我对于队列这一经常会使用到的数据结构有了一些新的认识。
        下面我大概讲讲我的收获吧,虽然谈不上什么真知灼见,但是,我认为,对于初学者来说应该还是能起到一些作用的:
        一、 为什么会出现队列这一形态的数据结构?拿数组做个对比吧,数组只要一定义,那么它的长度就是固定的了,这貌似对于存放数据没有什么太大影响,但是如果说用户需要存放的数据量会时常发生变化,这时,数组的弊端就体现出来了,增加数据会发生数组的溢出。但是,若担心溢出,一味将数组定义的过于庞大,又会造成内存空间的浪费。这时候,很多人会联想到C++里有关动态数组的定义,然而,Java语言里是没有这一说的,这时队列的作用异常醒目。它很好的避免了数据溢出的发生以及内存空间浪费的问题。
        二、队列作为一个众所周知的数据结构,很早就被封装成一种类,为什么我们还要自己写代码将它实现?这里引用胡哥的一句话“只有你经过自己的认真思考将某个数据结构的类型通过代码实现,并尽可能的完善其方法,才能在以后的编程实践中更好的运用这一类型”。确实,经过自己认真思考所编出来的程序代表了个人的最高水平,在自认为完成所有用户所需要的功能时不妨看看Queue类的源代码,找找和大师的差距,在对比中学会成长。
        三、谈谈编程过程中的一些心得体会。首先,对于一个类,在实现方法的具体代码时,应先从用户的角度出发,在主函数里写好用户可能会用到的一切方法,这些方法的内容只需要两部分,一是传入的参数类型和个数,二是返回值的类型。只有在完成这些工作后才能开展下一步的工作,也就是具体的代码实现,这一编程的思想是非常重要的,我将在以后的编程中慢慢养成这一良好的习惯。再者,要满足用户的一切需求。拿函数和构造器来说吧,要考虑到用户在使用这个函数或构造器时,可能传入一个参数,两个参数或者不传参,这时,就需要进行函数和构造器的重载操作,对于每种可能都写出相应的代码。除此之外,要考虑到用户传入的数据的不确定性,引入C++里模板的编程思想。总之,一切为用户服务。
        以上主要就是我对于队列知识所引发的一些思考,遣词造句尚显不成熟,希望阅读者多提宝贵意见,谢谢!
分享到:
评论
2 楼 HelloJimmy 2011-01-18  
动态数组在java中是存在的,他就是传说中的ArrayList
1 楼 langyu 2010-11-19  
总结的相当不错,有见地。是否学习过Java编码规范呢?

相关推荐

Global site tag (gtag.js) - Google Analytics