实验一

实验一-链性结构

实验项目

1.1

  • ArrayList和LinkedList测试:

  • 查看ArrayList和LinkedList的Java API帮助文档,参考http://www.cnblogs.com/rocedu/p/4837092.html 用Junit对ArrayList和LinkedList的方法进行测试,要尽量覆盖正常情况,异常情况,边界情况

  • 提交单元测试运行截图,要全屏,包含学号信息
    -测试代码及伪代码:
    image

1.2

  • 分别用Java的ArrayList和LinkedList实现有序线性表的合并:
    aList,bList都是非递减线性表,合并后也是非递减
    public static List<? extends Comparable> mergeSortedList(List<? extends Comparable> aList,
    List<? extends Comparable> bList)

  • 测试mergeSortedList的正确性,要尽量覆盖正常情况,异常情况,边界情况,提交测试代码运行截图,包含学号信息,课下把代码推送到代码托管平台。

  • 伪代码及产品代码:
    image
    -测试代码:
    image

1.3

  • 参考Java Foundation 3rd 第15.6节,用数组实现线性表List

  • 用JUnit或自己编写驱动类对自己实现的ArrayList进行测试,提交测试代码运行截图,要全屏,包含自己的学号信息课下把代码推送到代码托管平台

  • 伪代码:
    image

  • 产品代码:
    image

image

  • 测试代码:
  • image

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,根据返回值是否大于零来返回结果。这样的写法让相近的方法格式化,有助于大量方法的编写。

posted @ 2017-10-01 22:26  162315  阅读(190)  评论(4编辑  收藏  举报