好文档 - 专业文书写作范文服务资料分享网站

完整word版,Java集合框架实验报告

天下 分享 时间: 加入收藏 我要投稿 点赞

浙江大学城市学院实验报告

课程名称 Java高级程序设计 实验项目名称 Java集合框架实验 学生姓名 专业班级 学号

一、实验目的

1. 理解Java集合框架的特点、接口与类之间的关系

2. 掌握Java集合框架的List接口,以及List接口的重要实现类LinkedList、ArrayList 3. 掌握Java集合框架的Set、SortedSet接口,以及重要实现类HashSet与TreeSet 4. 掌握Java集合框架的Map、SortedMap接口及其重要实现类HashMap、TreeMap 5. 掌握Java集合框架的Collection与Iterator接口的特点与使用方式

二、实验内容

1、 使用List管理对象集合 2、 使用Map管理对象集合 3、 使用Set管理对象集合 4、 设计一个自定义的集合类

三、实验步骤

1、 在Eclipse中新建工程(即项目)

2、 使用List管理对象集合

1) 新建一个包listExample

2) 在这个包中新建三个类:Student类,StudentList类,StudentListTest类。 参考代码: Student.java, StudentList.java,StudentListTest.java

3) 完善上面三个类,相关要求参考源代码程序的注释,即根据要求修改源代码程

序,给出具体的实现代码(不使用泛型类)。

void addStudent(Student student){//添加一个学生对象

boolean a=true;

for(int i=0;i

Student stud = (Student)students.get(i);

if(stud.getId().equalsIgnoreCase(student.getId())) a=false; }

if(a==true)

students.add(student);//修改代码,保证students集合中所有学生对象的id号唯一

}

void deleteStudentById(String id){//根据学号删除学生对象 for(int i=0;i

Student stud = (Student)students.get(i); if(stud.getId().equalsIgnoreCase(id)) students.remove(stud); } }

void deleteStudentByName(String name){//根据姓名删除学生对象 for(int i=0;i

Student stud = (Student)students.get(i); if(stud.getName().equalsIgnoreCase(name)) students.remove(stud); } }

void deleteStudentByAge(int age){//根据年龄删除学生对象 for(int i=0;i

Student stud = (Student)students.get(i); if(stud.getAge()==age) students.remove(stud); }

}

Student[] findByName(String name){ int a=0;

for(int i=0;i

Student stud = (Student)students.get(i); if(stud.getName().equalsIgnoreCase(name)) a++; }

Student[] st=new Student[a];

int b=0;

for(int i=0;i

Student stud = (Student)students.get(i); if(stud.getName().equalsIgnoreCase(name)){ st[b]=stud; b++; } }

return st; }

Student[] findByAge(int age){ int a=0;

for(int i=0;i

Student stud = (Student)students.get(i); if(stud.getAge()==age) a++; }

Student[] st=new Student[a]; int b=0;

for(int i=0;i

Student stud = (Student)students.get(i); if(stud.getAge()==age) {st[b]=stud;b++;} }

return st;

}

4) 新创建listExample2包,重新设计设计上述程序(新程序都属于这个包),这

时需要使用泛型类,即出现的List、ArrayList或LinkedList都使用泛型。

private List students = new ArrayList(); void deleteStudentById(String id){//根据学号删除学生对象

Iterator iterator = students.iterator(); while(iterator.hasNext()) {

Student st=(Student)iterator.next(); if(st.getId()==id) iterator.remove(); } }

void deleteStudentByName(String name){//根据姓名删除学生对象 Iterator iterator = students.iterator(); while(iterator.hasNext()) {

Student st=(Student)iterator.next();

if(st.getName()==name) iterator.remove(); } }

void deleteStudentByAge(int age){//根据年龄删除学生对象 Iterator iterator = students.iterator(); while(iterator.hasNext()) {

Student st=(Student)iterator.next(); if(st.getAge()==age) iterator.remove(); }

}

List findByName(String name){

List studs=new ArrayList();

for(int i=0;i

Student stud = (Student)students.get(i); if(stud.getName().equals(name)){ studs.add(stud); } }

return studs; }

List findByAge(int age){

List studs=new ArrayList();

for(int i=0;i

Student stud = (Student)students.get(i); if(stud.getAge()==age) studs.add(stud); }

return studs;

}

3、 使用Map管理对象集合

1) 新建一个包MapExample

2) 在这个包中新建三个类:Student类,StudentMap类,StudentMapTest类。 参考代码Student.java, StudentMap.java,StudentMapTest.java

3) 完善上面三个类,相关要求参考源代码程序的注释,即根据要求修改源代码程

序,给出具体的实现代码(不使用泛型类)。

void deleteStudentByName(String name){//根据学生姓名删除学生对象

Collection values=students.values(); Iterator it=values.iterator(); while(it.hasNext()){

if(it.next().getName().equals(name)) it.remove();

3wff88zxkz8c83h0epna2cg5h8inz6016bw
领取福利

微信扫码领取福利

微信扫码分享