2012-03-19 3 views
-1

У меня есть класс LinkedList, который я написал, и у меня есть еще один класс студентов. У каждого учащегося есть ID, Name, GPA ...Как я могу реализовать Связанный список и другой класс

Как добавить эти переменные в связанный список как 1 элемент. Как будто мне нужно найти элемент в этом связанном списке, я могу показать всю информацию об этом ученике.

Если вам нужно дополнительное объяснение, скопируйте код.

+0

Пожалуйста, сделайте это, но в основном каждый узел должен иметь эту информацию, например, узел будет иметь следующее: {nextNode, id, name, gpa, ...} Или, если вы хотите, {nextNode, element}, в котором элемент может быть студентом. – fbernardo

ответ

2

Следуйте примеру java.util.List:

List<Student> roster = new ArrayList<Student>(); 

Просто подставляйте свои собственные ссылки и реализации классов:

YourLinkedList roster = new YourLinkedList(); 
Student s = new Student(); 
roster.add(s); 

Что касается поиска для данного экземпляра Student, я бы написать Итератор, который мог бы взять Комаратор и вернуть отфильтрованную версию связанного списка.

1

У меня есть 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; 
     } 
    } 
} 

В этом случае, вы реализуете новый связанный список с помощью a 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(); 
} 

Это всего лишь образец, вы можете улучшить код, но вы получите основную идею.

Смежные вопросы