实习五.泛型与集合框架
实验目的
(1)掌握泛型中参数类型的声明和使用
(2)掌握List实现类的主要操作
(3)掌握Map实现类的主要操作
实验步骤
步骤1
创建工程,工程名以学号姓名方式命名“xxxxxxxx”
步骤2
为每道实习题目建立对应的包,work1,work2,work3
步骤3
按规范书写源代码,注意编码格式,如:缩进,命名规范,各类之间依赖关系等
步骤4
规范书写实习报告
步骤5
实现与测试,代码以附件形式提交,同时贴上必要的代码运行截图
步骤6
及时总结心得体会与备忘
实验过程
实验1 计算柱体的体积
首先创建抽象类Shape类,给定其中的获取面积的抽象方法。再由Shape类派生出两个实体类Circle和Rectangle,分别对继承的getArea()方法重写。再定义泛型类Cylinder< T extends Shape>,由Shape的派生类来实例化泛型,传递参数,调用getArea()方法,处理后得到柱体体积。
运行结果
实验2 测试List< E >的相关方法
首先定义City类,存储相关的信息,实现Comparable接口,在类中定义compareTo方法,在Test中将City数组实例化,随后加入到ArrayList<City>的对象中,通过迭代器逐个访问List中的数据并输出。在学习Comparator容器之后,进一步修改代码,定义一个Comparator<City>的派生类MyComparator,并在ArrayList实例化时,作为参数进入ArrayList对象中,实现排序。
运行结果
实验3 测试TreeMap<K,V>的相关方法
首先定义Student类,然后将所有的信息存入其中,给出返回学号的方法,再之后定义MyComparator继承自Comparator,实现学号的排序。将City属性作为Value逐个添加进入TreeMap的对象中,通过Entry将TreeMap中的数据输出。由Entry对应的迭代器,实现对TreeMap的逐个查找并比较,找到对应学号后,调用TreeMap的Remove函数,实现删除。再使用TreeSet的对象,在对TreeMap的遍历中,将城市加入到TreeSet中,若发现第一次出现的城市名,则再次遍历TreeSet,寻找到相同的城市则输出。
运行结果
实习总结
通过本次实习,理解了泛型编程的使用方法,对Comparator类的比较也有了更多的认识。掌握了List泛型类的基本方法使用,学会了如何调用迭代器对其中的对象进行遍历与访问。在TreeMap和TreeSet上我也熟悉了利用Entry进行遍历的方法,熟悉了TreeMap的基本方法。