列表和以前的栈、队列有类似之处,都是一种集合,不一样之处在于:列表能够在中间添加和删除元素。html
其方法主要有git
方法 | 描述 |
---|---|
add(E element) | 列表末端添加 |
add(int index,E element) | 索引处添加 |
get(int index) | 返回索引处元素 |
remove(E o) | 删除列表中第一个o |
remove(int index) | 删除索引处元素 |
set(int index,E element) | 替代索引处元素 |
size() | 返回元素数量 |
这些方法实现起来和以前的线性结构并没有二致,以前也在队列中使用过中间插入的方法,处理起来不难。数组
无序和有序:这是本章和以前最不同的地方,列表分为三种类型:有序、无序、索引。有序列表add()
时会根据所添加元素的关键值自动排序;无序列表则能够根据须要添加至所制定的位置(前addToFront()
、后addToRear()
、中addAfter()
)。网络
利用数组、链表来实现有序和无序列表:理解了上面的概念后,无需列表实现方法和栈、队列的实现基本相同。值得注意的是有序列表须要Comparable接口来帮助实现,参考了上学期第八周的做业和知识进行复习。数据结构
有序与无序,当时光从字面上理解,误觉得有序指具备线性的结构而无序反之,结果并非这样。有序和无序指的是列表元素的内在关联,看书后获得正确理解(上面↑)学习
什么是Serializable接口?(串行化?序列化?)ui
引用:设计
什么是Serializable接口?
一个对象序列化的接口,一个类只有实现了Serializable接口,它的对象才能被序列化
什么是序列化?
将对象的状态信息转换为能够存储或传输的形式的过程,在序列化期间,对象将其当前状态写入到临时存储区或持久性存储区,以后,即可以经过从存储区中读取或反序列化对象的状态信息,来从新建立该对象
什么状况下须要序列化?
当咱们须要把对象的状态信息经过网络进行传输,或者须要将对象的状态信息持久化,以便未来使用时都须要把对象进行序列化3d
基本没有问题,都是能够立马解决的小细节(索引差一位、链表一个指针丢失的小问题)。指针
(statistics.sh脚本的运行结果截图)
top
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/0 | 1/1 | 6/6 | |
第二周 | 771/771 | 1/2 | 16/22 | |
第三周 | 562/1233 | 1/3 | 15/37 | |
第四周 | 1503/2736 | 2/5 | 15/52 |