实验6 泛型与集合框架_附答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

任务一:用LinkedList存放对象

1.利用面向对象的思想,创建以下类:

●Person类,包含Person的姓名和身份证号码,覆盖Object类的toString()

方法,显示“姓名:XXX 身份证号:XXX”。

●Student类,继承Person类,包含学生的语文、数学、英文课的成绩,并覆盖

父类的toString()方法,显示“姓名:XXX 身份证号:XXX 语文:XXX 数学:XXX 英文:XXX”。

●Teacher类,继承Person类,包含教师的工资。并覆盖父类的toString()方

法,显示“姓名:XXX 身份证号:XXX 工资:XXX”。

●public class Person implements Comparable{

●String name;

●String ID;

●Person(String s,String i){

●name=s;

●ID=i; }

●public String toString() {

●String str="姓名:"+name+" 身份证号码:"+ID;

●return str; }

●public int compareTo(Object arg0) {

●Person p=(Person)arg0;

●return pareTo(p.ID); } }

●class Student extends Person {

●int Chinese;

●int Math;

●int English;

●Student(String n,String i,int c,int m,int e){

●super(n,i);

●Chinese=c;

●Math=m;

●English=e; }

●public String toString() {

●String str;

●str=" 语文成绩:"+Chinese+" 数学成绩:"+Math+" 英语成绩:

"+English;

●return super.toString()+str;

●}

●}

●class Teacher extends Person{

●int salary;

●Teacher(String n,String i,int s){

●super(n,i);

●salary=s;

●}

●public String toString() {

●String str=" 工资"+salary;

●return super.toString()+str;

●} }

2.分别为以上三个类创建对象:

3.将这三个对象存放在一个LinkedList对象中:

LinkedList list=new LinkedList();

4.运行示例:

public class MyList {

public static void main(String[] args) {

LinkedList m=new LinkedList();

Person p=new Person("张三","12310000");

Student s=new Student("李四","12320000",89,93,94);

Teacher t=new Teacher("王五","12330000",3000);

m.add(p);

m.add(s);

m.add(t);

Iterator i = m.iterator();

while(i.hasNext()){

System.out.println(i.next());

}

}}

5.练习使用LinkedList的其他方法。将自己的信息添加到链表的开头,以及结尾,

然后再删除自己的信息。

返回类型方法名称描述

void addFirst()将指定元素插入此列表的开头

void addLast()将指定元素添加到此列表的结尾

E removeFirst()移除并返回此列表的第一个元素

E removeLast()移除并返回此列表的最后一个元素

boolean add(Object o)将指定的元素添加到列表中

任务二:用SET存放对象

1.将以下三个Person类的对象放在一个HashSet中,由于HashSet不能

存放重复的元素(姓名和身份证号都不能重复),所以在Person类中,需要覆盖hashCode()方法和equals()方法。这里给出重写方法的程序:

public boolean equals(Object obj) {

if (this == obj)

return true;

if (obj == null)

return false;

if (getClass() != obj.getClass())

return false;

Person other = (Person) obj;

if (name == null) {

if ( != null)

return false;

} else if (!name.equals())

return false;

if (id != other.id)

return false;

return true;

}

public int hashCode() {

final int prime = 31;

int result = 1;

result = prime * result + ((name == null) ? 0 :

name.hashCode());

result = prime * result + id;

return result;

}

再创建一个Person对象:

相关文档
最新文档