20172327 2018-2019-1 《程序设计与数据结构》第四周学习总结
教材学习内容总结
第六章 列表
列表集合 |
1.链表和列表对比:链表是一种实现策略,使用引用来在对象之间创建链接。列表集合是一种概念性表示法,列表可以由链表和数组来实现。
2.栈和队列都是线性结构,其元素只能在末端添加和删除。列表集合更一般化,可以在列表的中间和末端添加和删除元素。
3.列表集合分为3种类型:
有序列表(ordered list):其元素按照元素的某种内在特性进行排序。
无序列表(unordered list):其元素间不具有内在顺序,元素按照它们在列表中的位置进行排序。
索引列表(indexed list):其元素可以用数字索引来引用。
Java API 中的列表 |
1.Java集合API中提供的列表主要是支持索引列表。
2.Java API没有任何类能直接实现以上描述的有序列表。
3.Arraylist和Linkedlist都实现了java.util.List接口。
方法 | 描述 |
---|---|
add(E element) | 往列表的末端添加一个元素 |
add(int index,E element) | 往指定索引处插入一个元素 |
get(int index) | 返回指定索引处的元素 |
remove(int index) | 删除指定索引处的元素 |
remove(E Object) | 删除指定对象的第一个出现 |
set(int index,E element) | 替代指定索引处的元素 |
size() | 返回列表中的元素数量 |
列表ADT |
1.很多常见操作可以为所有类型的列表定义,这些操作之间的差别在于如何添加元素。
2.
操作 | 描述 |
---|---|
removeFirst | 在列表中删除第一个元素 |
removeLast | 在列表中删除最后一个元素 |
remove | 在列表中删除某个元素 |
first | 查看位于列表前端的元素 |
last | 查看位于列表末端的元素 |
contains | 确定列表是否含有某个元素 |
isEmpty | 确定列表是否为空 |
size | 确定列表中的元素数量 |
3.有序列表在添加元素时,只需要用add,位置取决于其键值。无序列表add操作有三种变体:addToFront(元素添加到列表前端)addToRear(元素添加到列表末端)addAfter(把元素添加到某个已知元素后边)
教材学习中的问题和解决过程
- 问题1:
代码调试中的问题和解决过程
- 问题1:在实现ArrayOrderedListTest测试时,我遇到了显示最后一个数字时,人家显示为null这个问题。
图片
- 解决分析,在我对前面ArrayList类检查时,发现我在显示last时,将rear-1不小心写成rear了,所以它所读取的是最后一个后边的,所以肯定为空。
代码托管
结对及互评
正确使用Markdown语法(加1分)
模板中的要素齐全(加1分)
教材学习中的问题和解决过程, (加3分)
代码调试中的问题和解决过程, 无问题
感想,体会真切的(加1分)
点评认真,能指出博客和代码中的问题的(加1分)
- 20172317
基于评分标准,我给以上博客打分:4分。得分情况如下:
- 20172320
基于评分标准,我给以上博客打分:8分。得分情况如下:
- 结对学习内容
- 教材第6章
- 完成课后自测题,并参考答案学习
- 完成课后练习题
- 完成程序设计项目:至少完成PP6.8、PP6.11、PP6.17
- 结对学习内容
其他(感悟、思考等,可选)
这周学的有点麻烦,栈还行,就是链表有点糊涂。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/0 | 1/1 | 8/8 | |
第二周 | 1306/1306 | 1/2 | 20/28 | |
第三周 | 1291/2597 | 1/3 | 18/46 | |
第四周 | 4361/6958 | 2/3 | 20/66 |
- 计划学习时间:10小时
- 实际学习时间:8小时
- 改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)
参考资料
原文地址:https://www.cnblogs.com/mrf1209/p/9751107.html