0

以下をJavaに変換しようとしています。学生クラスを作成し、を使用してStudentNodeとQueueに参加します。JavaでLinkedList<Student> studentList. 次の4つのことを行うにはどうすればよいですか。

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 に答える