Как я могу реализовать связанный список и другой класс - PullRequest
0 голосов
/ 20 марта 2012

У меня есть класс LinkedList, который я написал, и у меня есть другой класс студентов. У каждого студента есть удостоверение личности, имя, средний балл ......

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

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

Ответы [ 2 ]

2 голосов
/ 20 марта 2012

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

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

Просто замените свои собственные классы ссылок и реализации:

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

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

1 голос
/ 20 марта 2012

Полагаю, у вас есть классы 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();
}

Это просто пример, вы можете улучшить код, но вы поняли основную идею.

...