用LinkedList存放对象
1.利用面向对象的思想,创建以下类:
Person类,包含Person的姓名和身份证号码,覆盖Object类的toString()方法,显示“姓名:XXX 身份证号:XXX”。
Student类,继承Person类,包含学生的语文、数学、英文课的成绩,并覆盖父类的toString()方法,显示“姓名:XXX 身份证号:XXX 语文:XXX 数学:XXX 英文:XXX”。
Teacher类,继承Person类,包含教师的工资。并覆盖父类的toString()方法,显示“姓名:XXX 身份证号:XXX 工资:XXX”。
2.分别为以上三个类创建对象:
3.将这三个对象存放在一个LinkedList对象中:
LinkedList list=new LinkedList();
4.运行示例:
5.练习使用LinkedList的其他方法。将自己的信息添加到链表的开头,以及结尾,然后再删除自己的信息。
返回类型 方法名称 描述
void addFirst() 将指定元素插入此列表的开头
void addLast() 将指定元素添加到此列表的结尾
E removeFirst() 移除并返回此列表的第一个元素
E removeLast() 移除并返回此列表的最后一个元素
boolean add(Object o) 将指定的元素添加到列表中
源代码
import java.util.Iterator;
import java.util.LinkedList;
public class 快快快 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Person zhangsan=new Person();
zhangsan.name="张三";zhangsan.id="12310000";
Student lishi=new Student();
lishi.name="李四";lishi.id="12310000";lishi.yw="89";lishi.sx="93";lishi.yy="94";
Teacher wangwu=new Teacher();
wangwu.name="王五";wangwu.id="12330000";wangwu.gz="4000.0";
LinkedList<Person> list=new LinkedList<Person>();
list.add(zhangsan);
list.add(lishi);
list.add(wangwu);
Iterator<Person> it=list.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
System.out.println("after addfirst:");
Person majun=new Person();majun.name="小米";majun.id="2019013036";
list.addFirst(majun);
it=list.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
list.removeFirst();
System.out.println("after removefirst:");
it=list.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
list.addLast(majun);
System.out.println("after addlast:");
it=list.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
list.removeLast();
System.out.println("after removelast:");
it=list.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
}
class Person implements Comparable<Object>
{
String name;
String id;
@Override
public String toString() {
return "姓名:" + name +" 身份证号:" + id ;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
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 (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
@Override
public int compareTo(Object arg0) {
// TODO 自动生成的方法存根
Person other=(Person)arg0;
return (id.compareTo(other.id));
}
}
class Student extends Person
{
String yw;
String sx;
String yy;
/* (非 Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "姓名:" + name+" 身份证号:" + id +" 语文:"+yw+"数学:"+sx+"英语"+yy;
}
}
class Teacher extends Person
{
String gz;
/* (非 Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "姓名:" + name +" 身份证号:" + id +" 工资"+gz;
}
}