标签:second 程序设计 art eve 过程 image body 链接 ext
学习动态结构,初步学习链表中的增删查改。
了解Java集合类API是由Java类库中定义的几种表示不同类型集合的类。
了解泛型:一个集合所管理的对象的类型要在实例化该集合对象时才确定,保证了集合中对象类型的兼容性。
问题3解决方案:
Java语言中的对象引用实际上是一个指针(这里的指针均为概念上的意义,而非语言提供的数据类型),所以我们可以编写这样的类来实现链表中的结点。
程序代码:
class Node
{
Object data;
Node next;//指向下一个结点
}
将数据域定义成Object类是因为Object类是广义超类,任何类对象都可以给其赋值,增加了代码的通用性。为了使链表可以被访问还需要定义一个表头,表头必须包含指向第一个结点的指针和指向当前结点的指针。为了便于在链表尾部增加结点,还可以增加一指向链表尾部的指针,另外还可以用一个域来表示链表的大小,当调用者想得到链表的大小时,不必遍历整个链表。
链表的数据结构我们可以用类List来实现链表结构,用变量Head、Tail、Length、Pointer来实现表头。存储当前结点的指针时有一定的技巧,Pointer并非存储指向当前结点的指针,而是存储指向它的前趋结点的指针,当其值为null时表示当前结点是第一个结点,因为当删除当前结点后仍需保证剩下的结点构成链表,如果Pointer指向当前结点,则会给操作带来很大困难。如何得到当前结点呢?我们定义了一个方法cursor(),返回值是指向当前结点的指针。类List还定义了一些方法来实现对链表的基本操作,通过运用这些基本操作我们可以对链表进行各种操作。例如reset()方法使第一个结点成为当前结点。insert(Objectd)方法在当前结点前插入一个结点,并使其成为当前结点。remove()方法删除当前结点同时返回其内容,并使其后继结点成为当前结点,如果删除的是最后一个结点,则第一个结点变为当前结点。
问题1解决方案:在Java中,除了值类型,另外还有一种引用类型,而不同的对象,其引用值其实并不相等,即在内存中的不同的地址单元中。比如我们定义了学生类,分别有两个学生对象实例 :
Student stu= new Student(); Student stu1= new Student();
此时我们无论是使用stu==stu1符号,或者stu.equals(stu1)方法,把两个对象进行比较,得到的结果都是不相等的,因为对于引用类型来说,默认是比较两个对象引用的地址,显示,每个对象的引用有自己唯一的地址,所以,是不相等。把对象中所储存的内存地址中的值转化为字符串类型的在进行比较就可以了。
有一个问题一直困扰着我,那就是自己到底为什么而读书,为什么而学习,这些天正好看到一段话,现放到这里予自己以共勉。
作者:孙在在
链接:https://www.zhihu.com/question/40683692/answer/90861351
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
我感到害怕。就像我们不知道冬天从哪天开始,只会感觉夜的黑越来越漫长。我害怕一跟他们谈话,我就像一个透明的人,苍白的脑袋无法隐藏。我所拥有的内涵是什么?不就是人人能脱口而出,游荡在空气中最通俗的认知吗?像心脏在身体的左边。春天之后是夏天。美国总统是世界上最有权力的人。但阅读的人在知识里遨游,能从食谱论及管理学,八卦周刊讲到社会趋势,甚至空中跃下的猫,都能让他们对建筑防震理论侃侃而谈。相较之下,我只是一台在MP3世代的录音机,过气、无法调整。我最引以为傲的论述,恐怕只是他多年前书架上某本书里的某段文字,而且,还是不被荧光笔画线注记的那一段。我害怕,当他们读书时,脸就藏匿在书后面。书一放下,就以贵族王者的形象在我面前闪耀。举手投足都是自在风采。让我明了,那不只是知识,更是魔力。他们是懂美学的牛顿。懂人类学的梵谷。懂孙子兵法的甘地。血液里充满答案,越来越少的问题能让他们恐惧。彷佛站在巨人的肩牓上,习惯俯视一切。那自信从容,是这世上最好看的一张脸。我害怕,我祈祷他们永远不知道我的不安,免得他们会更轻易击垮我,甚至连打败我的意愿都没有。我如此害怕,因为他们的榜样是伟人,就算做不到,退一步也还是一个,我远不及的成功者。我害怕,他们知道「无知」在小孩身上才可爱,而我已经是一个成年的人。我害怕,因为大家都喜欢有智慧人。我害怕,他们能避免我要经历的失败。我害怕,他们懂得生命太短,人总是聪明得太迟。我害怕,他们的一小时,就是我的一生。我害怕,尤其是,还在努力的人。
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 126 | 1/1 | 20/20 | |
第二周 | 388/466 | 1/2 | 15/35 | |
第三周 | 706/1162 | 1/3 | 17/52 | |
第四周 | 1104/2266 | 1/4 | 20/72 | |
第五周 | 1126/3392 | 1/5 | 15/87 | |
第六周 | 906/4298 | 1/6 | 20/107 | |
第七周 | 1233/5531 | 1/7 | 20/127 | |
第八周 | 1091/6622 | 1/8 | 24/151 | |
第九周 | 320/7042 | 1/9 | 20/171 | |
第十周 | 335/7377 | 1/10 | 20/191 |
计划学习时间:20小时
实际学习时间:20小时
改进情况:
到这一周为止,教材上的学习内容就全部结束了,回头看这一本书,也仅仅是学了一遍而已,里面还是存在着不熟悉以及没有灵活掌握的内容,尤其是最后的这几章,都存在着一定的难度。以后还会多加复习,虽然教材结束了,但Java的学习才刚刚开始而已,从下周开始,王老师就要开始教新一部分的知识和内容了,希望我能够应对好以后的问题和挑战吧,也希望自己以后还能够继续不断进步。
20172313 2017-2018-2 《程序设计与数据结构》第十周学习总结
标签:second 程序设计 art eve 过程 image body 链接 ext
原文地址:https://www.cnblogs.com/yu-kunpeng/p/9061390.html