20172324 2017-2018-2 《程序设计与数据结构》第十周学习总结
20172324 2017-2018-2 《程序设计与数据结构》第十周学习总结
教材学习内容总结
-
集合的概念
- 集合是储存对象的,长度可变,可以封装不同的对象
- 迭代器: 其实就是取出元素的方式(只能判断,取出,移除,无法增加)
-
集合与数据结构
- 集合是一种对象,类似于保存其他对象的存储库。
- 我们常常用集合表示一个专门用于保存元素的对象,并且该对象还提供增添、删除等管理所保存元素的服务。例如Arraylist类。
-
集合的同构与异构
- 同构:只保存同类元素
- 异构:可保存不同类元素
-
动态结构
-
建立动态结构的链,见下,实例化两个Node类对象,并使一个Node对象的引用变量next指向另一个Node对象,从而将两个对象链接起来。
-
队列:队列类似于列表,不同的地方在于队列元素存取方式有限制,队列采取先进先出(FIFO)的存取方式,即类似于生活中我们排队的情况,我们是从队尾入队,队首出队。
-
堆栈:堆栈类似于队列,不同之处在于元素的存取方式,它是采用后进先出(LIFO)的存取方式,也就是堆栈元素在堆栈的同一端进入和移出栈堆,最后进入的是第一个移出的。
-
树:由一个根节点和构成层次结构的多个节点组成,除根节点外的所有节点称为内部节点,没有子节点的节点称为叶节点。注意,由下至上地画一棵树,根节点在顶层,叶节点在底层。
-
图:图没有类似树根节点那样的初始入口点,一个图中,一个节点到另一个节点的连接称为边,连接一个图内各节点的边数没有限制。
-
-
java集合类API
- 泛型:指一个集合所管理的对象的类型要在实例化该集合对象时才确定。java集合类API中定义的类称为泛型泛型保证了集合中对象类型的兼容性。
教材学习中的问题和解决过程
- 问题1:
几种集合的不同之处 - 问题1解决方案:
List:元素是有序的,元素可以重复.因为改集合体系有索引.
ArrayList:底层的数据结构使用的是数组结构,特点:查询速度快,但是增删慢.线程不同步
LinkedList:底层使用的是;链表数据结构,特点:增删速度快,查寻速度慢.
Vector:底层的数据结构使用的是数组结构,线程同步,速度慢,被ArrayList替代
list:特有方法,凡是可以操作角标的方法都是该体系特有的方法
增:add(index,element); addAll(index,Collection);
删:remove(index);
改:set(index,element);
查:get(index);subList(from,to);ListIterator();(重点)
- 问题2:集合使用时一些比较有用的方法
- 问题2解决方案:
- toArray()方法:是遍历用的(把集合转变为数组)
- asList()方法,把数组转变为集合
- 数组长度是length方法,字符串的长度是length(),集合求长度的方法是size.
- Iterator迭代器是集合的特有遍历方法:while方法、for循环方法。
- list集合特有的遍历方法:就是size和get()的结合
for(int x=0; x<list.size();x++){
System.out.println(list.get(x));
}
代码调试中的问题和解决过程
- 问题1:因为这个链表指针和magazine类的指针大同小异,所以直接将magazineList这个拿来用了,但是就会发现其中有很多类似的变量名,修改一个之后往往不知道剩下那些极度相似的变量名中谁与它本是同类别的。就会造成错误提示。
- 问题1解决方案:今天学了重构之后这个问题就很好解决了,当你要改变一个变量名又想将之后的相同变量名一起改正时,就利用选中需要更改的变量然后refactor->refactor this
代码托管
上周考试错题总结
-
A finally clause will execute
A . only if the try statement that precedes it does not throw an exception
B . only if the try statement that precedes it throws an exception that is caught
C . only if the try statement that precedes it throws an exception that is not caught
D . only if the try statement that precedes it throws an exception, whether it is caught or not
E . in any circumstance
最后一个子句,无论在try和catch语句中发生什么,都将执行 (因为它是可选的)。 -
In order to have some code throw an exception, you would use which of the following reserved words?
A . throw
B . throws
C . try
D . Throwable
E . goto
当检测到异常时,使用保留字throw抛出异常,如:if (score < 0)抛出新的IllegalTestScoreException(“输入分数”+ score +“为负值”); -
Character streams manage
A . byte-sized data
B . binary data
C . Unicode characters
D . ASCII characters
E . compressed data
字符流用于管理16位Unicode字符。 -
A method that uses the Scanner class to obtain input does not require either catching or throwing an IOException. This is because
A . the Scanner class does not call upon any classes that throw checked exceptions
B . the Scanner class' methods call input methods in try statements and catch IOExceptions so that they are handled directly in the Scanner class
C . the Scanner class uses JOptionPane dialog boxes instead of java.io classes so that it does not have to deal with IOExceptions
D . the Scanner class overrides the class IOException making it an unchecked exception
E . none of the above, methods do require handling IOException even if thrown by a method in a Scanner class
通过拥有自己的catch (IOException…)catch语句,导致一个IOException的扫描器类中的任何代码都被扫描器类捕获
结对及互评
写在评论里
点评过的同学博客和代码
- 本周结对学习情况
其他(感悟、思考等,可选)
🙂
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 1/2 | 20/20 | |
第二周 | 329/500 | 2/3 | 18/38 | |
第三周 | 619/1000 | 2/5 | 22/60 | |
第四周 | 817/1734 | 2/7 | 38/98 | |
第五周 | 674/2408 | 1/9 | 30/128 | |
第六周 | 1136/2870 | 2/10 | 30/158 | |
第七周 | 1000/3791 | 1/11 | 32/190 | |
第八周 | 2662/6453 | 2/13 | 48/238 | |
第九周 | 782/7573 | 2/15 | 48/238 | |
第十周 | 782/7573 | 2/17 | 48/238 |