zoukankan      html  css  js  c++  java
  • 实验一 线性结构

    实验一 线性结构

    实验1

    ArrayList和LinkedList测试:

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

    提交单元测试运行截图,要全屏,包含学号信息
    image

    实验2

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

    测试mergeSortedList的正确性,要尽量覆盖正常情况,异常情况,边界情况,提交测试代码运行截图,包含学号信息

    课下把代码推送到代码托管平台
    image

    实验3

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

    用JUnit或自己编写驱动类对自己实现的ArrayList进行测试,提交测试代码运行截图,要全屏,包含自己的学号信息

    课下把代码推送到代码托管平台
    image

    实验4

    参考Java Foundation 3rd 第15.7节,用链表实现线性表List

    用JUnit或自己编写驱动类对自己实现的LinkedList进行测试,提交测试代码运行截图,要全屏,包含自己的学号信息

    课下把代码推送到代码托管平台
    image

    实验5

    源码分析:

    参考http://www.cnblogs.com/rocedu/p/7483915.html对Java的ArrayList,LinkedList按要求进行源码分析,并在实验报告中体现分析结果
    image
    在IDEA中可以找到源代码,首先通过public class ArrayList E extends AbstractList E implements List E, RandomAccess, Cloneable, java.io.Serializable
    可以看出其支持泛型,且继承自AbstractList,因此很多接口比如RandomAccess、Cloneable等接口都可以用,ArrayList提供了三个构造方法,根据网上的说法来看。
    image
    第一个构造方法使用提供的initialCapacity来初始化elementData数组的大小。
    第二个构造方法调用第一个构造方法并传入参数10
    第三个构造方法则将提供的集合转成数组返回给elementData
    LinkedList插入和删除操作时要比ArrayList更加高效,因为它是链表的,因此它的随机访问要比ArrayList差。
    image
    LinkedList继承自AbstractSequenceList
    image
    LinkedList有两个构造方法。根据网上的说法来看。
    第一个构造方法不接受参数,只是将节点的前一节点和后一节点都设置为自身,这样整个链表就只有一个节点,用于表示一个空的链表。
    第二个构造方法接收一个参数,调用第一个构造方法构造一个空的链表,之后通过addAll将其中元素全部添加到链表中。
    感受:学习Java最好的话可以看看源代码。通过看源代码会发现这些东西为什么会这个样子,有哪些东西不能去做,实际应该怎么做等等的问题。最后,可想而知这些代码都是高手们写出来的,对于我们这些初学者来说很有学习意义与借鉴意义。

  • 相关阅读:
    hdu 1569 方格取数(2) 最大权独立集
    TCL脚本语言基础介绍
    Ubuntu10.04下Ckermit的使用
    LPC2468 Keil里设置RAM或Flash调试方法
    发布Android程式步骤
    Vim使用笔记(1): 安装
    在Android SDK里新建虚拟机出现:could not find virtual device named 'xxx'的解决办法
    git简单入门教程
    Jlink调试LPC2468
    Openrd 烧录uboot步骤
  • 原文地址:https://www.cnblogs.com/yuanhongming/p/7616492.html
Copyright © 2011-2022 走看看