A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张丽 中级黑马   /  2012-10-6 19:58  /  1336 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

求助:自定义一个堆栈数据结构,用于存储Student类的对象,对象有年龄和姓名,然后将对象取出。

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 可以自己做一遍发出来。

查看全部评分

2 个回复

倒序浏览
本帖最后由 古银平 于 2012-10-6 20:23 编辑
  1. package day18;

  2. import java.util.*;
  3. class Person
  4. {
  5.         private String name;
  6.         private int age;
  7.         Person(String name,int age)
  8.         {
  9.                 this.name = name;
  10.                 this.age = age;
  11.         }
  12.         public String getName()
  13.         {
  14.                 return name;
  15.         }
  16.         public int getAge()
  17.         {
  18.                 return age;
  19.         }
  20.         public int hashCode()
  21.         {
  22.                 return name.hashCode()+age*29;
  23.         }
  24.         public int compareTo(Person s)
  25.         {
  26.                 int num = new Integer(this.age).compareTo(new Integer(s.age));
  27.                 if(num==0)
  28.                         return this.name.compareTo(s.name);
  29.                 return num;
  30.         }
  31.         public boolean equals(Object obj)
  32.         {
  33.                 if(!(obj instanceof Person))
  34.                         throw new ClassCastException("类型不匹配!");
  35.                 Person s = (Person)obj;
  36.                 return this.name.equals(s.name) && this.age==s.age;
  37.         }
  38.         public String toString()
  39.         {
  40.                 return name+":  :"+age;
  41.         }
  42. }
  43. class Duizhan
  44. {
  45.         private LinkedList<Person> link; //这里用List接口的LinkedList类
  46.         Duizhan()
  47.         {
  48.                 link=new LinkedList<Person>();
  49.         }
  50.         public void myAdd(Person p)
  51.         {
  52.                 link.addFirst(p);  //讲存进的元素都放在列表的开头
  53.         }
  54.         public Person myGet()
  55.         {
  56.                 return link.removeFirst();  //取出第一个元素,最后存进去的就是起一个元素
  57.         }
  58.         public boolean isNull()
  59.         {
  60.                 return link.isEmpty();
  61.         }
  62. }
  63. class DuizhanDemo {
  64.         public static void main(String[] args)
  65.         {
  66.                 Duizhan dl = new Duizhan();
  67.                 dl.myAdd(new Person("lisi1",20));
  68.                 dl.myAdd(new Person("lisi2",23));
  69.                 dl.myAdd(new Person("lisi3",21));
  70.                 dl.myAdd(new Person("lisi4",22));
  71.                 while(!(dl.isNull()))
  72.                 {
  73.                         System.out.println(dl.myGet());
  74.                 }
  75.         }

  76. }
  77. 堆栈就是先进后出,出来的结果是lisi4......lisi1,这我写的,你看看那把
复制代码

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

回复 使用道具 举报
lisi1::21
lisi2::22
lisi3::23
lisi4::24
我运行了,结果是这个,还是不对啊,年龄都没写24.纠结,好像该题也用不上hashCode()和equals()方法,还有compareTo()方法,LinkedList是有序的,就是怎么存进去,就按这个顺序取出来,我们写了myAdd()方法和myGet()方法在这个程序里好像没有操作对象数据。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马