实验一-链性结构
实验项目
1.1
-
ArrayList和LinkedList测试:
-
查看ArrayList和LinkedList的Java API帮助文档,参考http://www.cnblogs.com/rocedu/p/4837092.html 用Junit对ArrayList和LinkedList的方法进行测试,要尽量覆盖正常情况,异常情况,边界情况
-
提交单元测试运行截图,要全屏,包含学号信息
-测试代码及伪代码:
1.2
-
分别用Java的ArrayList和LinkedList实现有序线性表的合并:
aList,bList都是非递减线性表,合并后也是非递减
public static List<? extends Comparable> mergeSortedList(List<? extends Comparable> aList,
List<? extends Comparable> bList) -
测试mergeSortedList的正确性,要尽量覆盖正常情况,异常情况,边界情况,提交测试代码运行截图,包含学号信息,课下把代码推送到代码托管平台。
-
伪代码及产品代码:
-测试代码:
1.3
-
参考Java Foundation 3rd 第15.6节,用数组实现线性表List
-
用JUnit或自己编写驱动类对自己实现的ArrayList进行测试,提交测试代码运行截图,要全屏,包含自己的学号信息课下把代码推送到代码托管平台
-
伪代码:
-
产品代码:
- 测试代码:
1.4
-
参考Java Foundation 3rd 第15.7节,用链表实现线性表List
-
用JUnit或自己编写驱动类对自己实现的LinkedList进行测试,提交测试代码运行截图,要全屏,包含自己的学号信息课下把代码推送到代码托管平台
1.5
-
源码分析:
-
参考http://www.cnblogs.com/rocedu/p/7483915.html对Java的ArrayList,LinkedList按要求进行源码分析,并在实验报告中体现分析结果
学习收获:
-
查看源码之后,我对于数组的容量与大小的区别有了更清楚的理解,在源码里有很多定义了很多初始的capacity,如同我在编写自己的ArrayList类时定义了初始容量为100,但是size是动态变化的根据赋值来决定一样。
-
源码中对于contains方法的编写让我有了新的收获,源码中的contains也是一个布尔类型的方法,但他是通过类似于compareTo方法,在数组非空的时候,先根据比对结果返回一个数值,如果遍历数组之后找到了这个这个元素,就返回这个元素的位置(必定是正整数),否则就返回-1,根据返回值是否大于零来返回结果。这样的写法让相近的方法格式化,有助于大量方法的编写。