实验6 泛型与集合框架_附答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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
4.运行示例:
public class MyList {
public static void main(String[] args) {
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
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对象: