2016-01-13 21 views
2

我实现了从无到有LinkedList类,它们有以下几种方法: getHead(), getCount(), addFront(), deleteFront()检索一个LinkedList只有一个特定的数据(该数据字段包含几个数据)

我有constructor(String studentAdmNo, String studentName, String gender, String diploma, int year, String status), get set method, toString()

一个学生类和节点包含方法getData(), setData(), getLink(), setLink(), toString()

我添加Student对象插入到链表(因此该链表数据字段保持几个数据;这是〜应变g studentAdmNo,String studentName,String性别,String文凭,int年,String状态)。

但是,我想从数据字段检索只有一个数据(这是year)。

for (Node j = LinkedList.getHead(); j!=null; j = j.getLink()) 
     { 
      int yearData = ((Integer)j.getData()); //returns everything that is in the data field 
      //what I want is something like j.getData().getYear() but there's an error 
      } 
     } 

我该怎么做?

+1

getData方法返回的是什么? –

回答

1

如果您Node.getData()方法返回一个Object,你用它来存储Student对象,那么你可以将返回的对象转换为Student,并调用适当的获取。

int year = ((Student)j.getData()).getYear();

+0

工作!谢谢 – Minchae

0

你有干将&制定者,所以只要从要检索一年,并使用getter为一年 有可能的方法应该是node.getYear()的调用节点; 其中节点是节点

1

你应该看看下面这个例子的实例(点击标有旁边的小几乎隐形按钮继续):Why Generics?

我想你应该让你列表通用。我猜它现在包含Objects。在你的情况下,你应该声明你的类如class Node<E>class LinkedList<E>,并创建如下链接列表:LinkedList<Student>。我也会反对披露类Node。请参阅此快速浏览:Encapsulation/Information Hiding

您的getHead()方法应该直接返回Student。然后,你可以简单地做:

list.getHead().getYear(); 
相关问题