我有一個LinkedList類,我寫了,我有另一班學生。每個學生都有一個身份證,姓名,GPA ......我如何實現一個鏈接列表和另一個類
如何將這些變量作爲1元素添加到鏈接列表中。就好像我需要在該鏈接列表中搜索一個元素,我可以顯示該學生的所有信息。
如果您需要進一步解釋,請複製一些代碼。
我有一個LinkedList類,我寫了,我有另一班學生。每個學生都有一個身份證,姓名,GPA ......我如何實現一個鏈接列表和另一個類
如何將這些變量作爲1元素添加到鏈接列表中。就好像我需要在該鏈接列表中搜索一個元素,我可以顯示該學生的所有信息。
如果您需要進一步解釋,請複製一些代碼。
按照java.util.List的例子:
List<Student> roster = new ArrayList<Student>();
只需替換自己的參考和實現類:
YourLinkedList roster = new YourLinkedList();
Student s = new Student();
roster.add(s);
對於尋找一個給定的學生來說,我會寫一個迭代器,可以使用Comarator並返回鏈表的過濾版本。
我想你有Student
和MyLinkedList
類,現在你想使用它們,因爲也許你的鏈表只支持整數項。您可以使用類似這樣
public class Student {
private int id;
private String name;
private double gpa;
//getters and setters...
}
現在你需要的Student
類添加爲你的鏈接列表中的節點的信息:
public class MyLinkedList {
class MyNode {
private Student student;
private MyNode next;
public MyNode(Student student) {
this.student = student;
this.next = null;
}
public Student getStudent() {
return this.student;
}
}
private MyNode root;
private int size;
public MyLinkedList {
this.root = null;
}
public void add(Student student) {
//this is just one way to implement the insert method
//you can rewrite to use your own implementation
MyNode node = new MyNode(student);
if (root == null) {
root = node;
} else {
MyNode currentNode = root;
while (currentNode.next != null) {
currentNode = currentNode.next;
}
currentNode.next = node;
}
size++;
}
public void printData() {
//method used to print the content of the linked list
MyNode currentNode = root;
while (currentNode != null) {
Student student = currentNode.getStudent();
System.out.println("Id: " + student.getId + " Name: " + student.getName());
currentNode = currentNode.next;
}
}
}
通過這種方式,您可以使用實現一個新的鏈表一個Student
類。讓我們來試試這個代碼:
public static void main(String args[]) {
MyLinkedList mll = new MyLinkedList;
Student student;
student = new Student();
student.setId(1);
student.setName("Luiggi");
mll.add(student);
student = new Student();
student.setId(2);
student.setName("Mendoza");
mll.add(student);
mll.printData();
}
這只是一個示例,您可以改進代碼,但您明白了主意。
請這樣做,但基本上每個節點都應該有這樣的信息,例如一個節點可能會有:{nextNode,id,name,gpa,...}或者如果你願意,{nextNode,element}可能是一名學生。 – fbernardo 2012-03-19 21:18:47