0

我正在尝试将以下内容转换为java。我创建了一个学生类并使用LinkedList<Student> studentList. 如何在 java 中执行以下 4 件事来加入 StudentNode 和 Queue?

Student *studentPtr;
StudentNode *p;
1. p.student = studentPtr;
2. p.next = null;

Queue readyQueue;
3. readyQueue.head
4. readyQueue.tail

typedef struct{
   int age;


}Student;
struct my_struct
    {
      Student student;
      struct my_struct* next;
    }StudentNode;


struct my_list
{
  struct my_struct* head;
  struct my_struct* tail;
}Queue;

谁能帮我将以下函数转换为java方法?

StudentNode *makeStudentNode(Student *stPtr)
{
    StudentNode *p = (StudentNode *)malloc(sizeof(StudentNode));

   p->student = stPtr;
   p->next = NULL;
   return p;
}
4

2 回答 2

1

java.util.LinkedList图书馆里已经有,你可以使用它。

List<student> studList = new LinkedList<student>(); 
Student st = new Student();
st.setName("...");
studList.add(st);
...
于 2012-11-23T17:04:15.563 回答
1
public class Student {
   int age;
}

而是一个队列

List<Student> studentList;

在代码中,您将通过以下方式初始化:

studentList = new ArrayList<Student>();

或者,如果您更愿意靠近队列:

studentList = new LinkedList<Student>();

添加学生:

studentList.add(new Student(23));
studentList.add(new Student(19));

并删除第一个元素

studenList.remove(0);

如果 theList 被定义为 LinkedList:

LinkedList<Student> studentList;

然后你可以用

studentList.remove();

您可以遍历所有学生:

for (Student student: studentList) {
   System.out.println(student.age);
}

或使用迭代器:

 for (Iterator<Student> iterator = studentList.iterator(); iterator.hasNext();) {
     Student student = iterator.next();
     System.out.println(student.age);
 }
于 2012-11-23T17:07:58.177 回答