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)); }
- 问题4:IO流
- 问题4解决方案:I/O异常有可能产生的异常太多了,我选择看API
代码调试中的问题和解决过程
代码托管
上周考试错题总结
- 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的扫描器类中的任何代码都被扫描器类捕获
结对及互评
写在评论里
点评过的同学博客和代码
- 本周结对学习情况
- 21
其他(感悟、思考等,可选)
??
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 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 |
参考资料
原文地址:https://www.cnblogs.com/amberR/p/9063614.html
时间: 2024-10-29 10:48:35