我正在尝试将以下内容转换为java。我创建了一个学生班,并使用LinkedList<Student> studentList.
加入了StudentNode和Queue
如何在java中执行以下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;
}
答案 0 :(得分:1)
java.util.LinkedList
已在库中提供,您可以使用它。
List<student> studList = new LinkedList<student>();
Student st = new Student();
st.setName("...");
studList.add(st);
...
答案 1 :(得分:1)
public class Student {
int age;
}
而不是队列
List<Student> studentList;
在代码中,您将初始化by:
studentList = new ArrayList<Student>();
或者如果您希望更接近队列:
studentList = new LinkedList<Student>();
添加学生:
studentList.add(new Student(23));
studentList.add(new Student(19));
并删除第一个元素
studenList.remove(0);
如果将List定义为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);
}