2018-2019-20172321 《Java软件结构与数据结构》第四周学习总结
2018-2019-20172321 《Java软件结构与数据结构》第四周学习总结
教材学习内容总结
第六章
-
6.1列表集合
-
列表集合是一种概念性表示法,其思想是使事物以线性列表的方式进行组织。
-
列表集合分为三类:有序列表、无序列表、索引列表
- 有序列表:其元素按照元素- 的内在特性排序。
- 无序列表:元素只按照它们在列表的位置进行排序。
- 索引列表:元素根据自己的数字索引进行排序。
-
6.2Java集合API中的列表
-
列表的一些操作
操作 描述 add(E element) 向列表末端添加一个元素 add(int index,E element) 在指定索引处插入一个元素 get(int index) 返回指定索引处的元素 remove(int index) 删除指定索引处的元素 remove(o objecr) 替代指定索引处的元素 set(int index, E element) 返回列表中的元素数量 -
Java集合API提供的列表类主要是支持索引列表;Java集合API中提供了使用数组实现的ArrayList类和使用链表实现的LinkedList类,它们都可以存储由泛型参数E定义的元素,同时也都实现了List接口。
-
6.6使用数组实现列表
-
基于数组实现的列表首先要把列表的一端固定在索引0处,设置一个整数变量rear表示列表中的元素数目,同时表示列表末端的下一个可用位置。
-
优势——
- ①支持自动改变大小的功能(最大的优势);
- ②利用泛型可以用于存储不同非基本类型的数据;
- ③可以灵活的插入元素 ;
- ④可以灵活的删除元素 。
-
6.7使用链表实现列表
-
remove操作:remove操作是链表实现列表最重要的一步,该方法中提供的遍历整个列表的方法,为之后实现contains方法提供了帮助。
教材学习中的问题和解决过程
- 问题1:教材上有一句话不是特别理解,表述引索列表和数组根本区别得时候出现得,
如果删除了一个元素,其他元素的位置会像"坍缩"了一样以消除产生的间隙。
这个坍缩的意思就很有意思了,是怎么坍缩来腾出位置嘞?
- 解答:后面的元素会自动的补齐索引,就比如说排队的一列队伍,中间有人不愿意排下去了而离开队伍,后面的人就会向前补齐;其实是个很简单的概念,不知道为什么要用这么难懂的一个词。
代码调试中的问题和解决过程
-
在实现pp6.7的时候,我运行测试类,发现所有的部分都是null或者0,这就奇了他的怪了,没有道理啊,我又回到我的ArrayList类里去查看我的方法,感觉是没什么问题的啊,就算是其他类错了,size方法也不应该得到0啊
-
后来我随手点了debug,然后追根溯源,然后弹到了一个奇怪的方法上,原来我在写 ArrayOrderedList类的时候因为直接复制了我先打上去的书上的例题,声明的时候随手Alt+Enter就有了
import week5.书上代码.jsjf.ArrayList;
所以我的ArrayOrderedList类其实指向了那个什么方法都return null的例题类里面,真是强行降智。
代码托管
上周考试错题总结
- Because queue operations modify both ends of the collection, fixing one end at index 0 eliminates the requirement that elements be shifted.
- A .True
- B .False
- 正确答案: B 你的答案: A
- 理解:当时没认真看题,书上的原话是因此将一端固定于引索0处要求移动元素,所以是错的。
结对及互评
- 博客中值得学习的或问题:
- 优点:代码编写时遇到的问题记录非常详细;对书本上的内容理解也到位
- 缺点:没啥缺点,我觉得好的yipi。
- 本周结对学习情况
其他(感悟、思考等,可选)
国庆假期已经余额不足了,一号几乎在912花掉了一整天,5号开始就开始学习了,其实我觉得一直玩还挺无聊的,学习一下还是不错的感觉,但是一想到未来的半个月每天都要花两三个小时走队列,我就为自己的学习时间不足而感到恐惧。
学习进度条
| | 代码行数(新增/累积)| 博客量(新增/累积)|学习时间(新增/累积)|
| -------- | :----------------😐:----------------😐:---------------: |:-----😐
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第一周 | 0/0 | 1/1 | 8/8 | |
| 第二周 | 671/671 | 1/2 | 17/25 | |
| 第三周 | 345/1016 | 1/3 | 15/40 | |
| 第四周 | 405/1421 | 2/5 | 23/63 | |
参考资料
- [Java软件结构与数据结构](第四版)
- java集合包总结
- 《Java学习笔记(第8版)》学习指导