Java:如何添加或创建带有参数的新对象并将其添加到队列?

Java:如何添加或创建带有参数的新对象并将其添加到队列?,java,constructor,queue,Java,Constructor,Queue,我正在写一个程序,让学生到特定部门或学院的出纳处领取自动生成的代币号码,然后排队等待轮到他们进入。该程序应允许用户通过在系统中添加其姓名和令牌号以及其他功能,在队列中插入新学生 我不知道如何将新学生添加到队列中 以下是我到目前为止得出的结论: 学生班 package queues; import java.util.Random; public class Student { private String name; private int tnum; public

我正在写一个程序,让学生到特定部门或学院的出纳处领取自动生成的代币号码,然后排队等待轮到他们进入。该程序应允许用户通过在系统中添加其姓名和令牌号以及其他功能,在队列中插入新学生

我不知道如何将新学生添加到队列中

以下是我到目前为止得出的结论:

学生班

package queues;

import java.util.Random;

public class Student {

    private String name;

    private int  tnum;

public Student(String name, int tnum){
    this.name=name;
    this.tnum=tnum;
}

public String getName() {
    return name;
}


public void setName(String name) {
    this.name = name;
}


public int getTnum() {
    return tnum;
}


public void setTnum(int tnum) {
    this.tnum = tnum;
}


public String toString(){
    return "Student name: "+ name+ "  Token num: "+tnum;
    }

}
package queues;

import java.util.LinkedList;
import java.util.Queue;
import java.util.Random;
import java.util.Scanner;

public class Student_Main{


    public static void main(String[] args) {

    Scanner sc= new Scanner(System.in);

    int opt;

    Student stdt= new Student("Sophia", 1);
    Student stdt2= new Student("Amelia", 2);
    Student stdt3= new Student("Karxlina", 4);
    Student stdt4= new Student("Rachel", 3);

    Queue<Student> stdtQ= new LinkedList<Student>();

    stdtQ.add(stdt);
    stdtQ.add(stdt2);
    stdtQ.add(stdt3);
    stdtQ.add(stdt4);

    System.out.println(stdtQ);

    System.out.println("Please choose an option. ");
    System.out.println("To insert new student, enter 1.");

    opt= sc.nextInt();

    if(opt==1){
        stdtQ.add(Student(sc.hasNext(), sc.nextInt())); /*this doesn't work of course*/
      }



    }


}

主类

package queues;

import java.util.Random;

public class Student {

    private String name;

    private int  tnum;

public Student(String name, int tnum){
    this.name=name;
    this.tnum=tnum;
}

public String getName() {
    return name;
}


public void setName(String name) {
    this.name = name;
}


public int getTnum() {
    return tnum;
}


public void setTnum(int tnum) {
    this.tnum = tnum;
}


public String toString(){
    return "Student name: "+ name+ "  Token num: "+tnum;
    }

}
package queues;

import java.util.LinkedList;
import java.util.Queue;
import java.util.Random;
import java.util.Scanner;

public class Student_Main{


    public static void main(String[] args) {

    Scanner sc= new Scanner(System.in);

    int opt;

    Student stdt= new Student("Sophia", 1);
    Student stdt2= new Student("Amelia", 2);
    Student stdt3= new Student("Karxlina", 4);
    Student stdt4= new Student("Rachel", 3);

    Queue<Student> stdtQ= new LinkedList<Student>();

    stdtQ.add(stdt);
    stdtQ.add(stdt2);
    stdtQ.add(stdt3);
    stdtQ.add(stdt4);

    System.out.println(stdtQ);

    System.out.println("Please choose an option. ");
    System.out.println("To insert new student, enter 1.");

    opt= sc.nextInt();

    if(opt==1){
        stdtQ.add(Student(sc.hasNext(), sc.nextInt())); /*this doesn't work of course*/
      }



    }


}
包队列;
导入java.util.LinkedList;
导入java.util.Queue;
导入java.util.Random;
导入java.util.Scanner;
公共班级学生会{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
int-opt;
学生stdt=新生(“Sophia”,1);
Student stdt2=新生(“阿米莉亚”,2);
Student stdt3=新生(“Karxlina”,4);
Student stdt4=新生(“Rachel”,3);
队列stdtQ=新的LinkedList();
stdtQ.add(stdt);
stdtQ.add(stdt2);
stdtQ.add(stdt3);
stdtQ.add(stdt4);
System.out.println(stdtQ);
System.out.println(“请选择一个选项”);
System.out.println(“要插入新学员,请输入1”);
opt=sc.nextInt();
如果(opt==1){
stdtQ.add(Student(sc.hasNext(),sc.nextInt());/*这当然不起作用*/
}
}
}
你应该写:

stdtQ.add(new Student(sc.hasNext(), sc.nextInt()));
你应该写:

stdtQ.add(new Student(sc.hasNext(), sc.nextInt()));

队列通常以FIFO方式对元素进行排序。因此,如果您对使用令牌编号对队列进行排序感兴趣,您应该检查优先级队列

通过调用
add
方法,您已经在向
stdtQ
队列添加新元素。如果要将其他学生添加到该队列中,首先必须创建对象(例如,通过从输入中获取值),并使用
add
方法添加对象

您可以按如下方式打印队列中的所有学生:

for(Student s : stdtQ){
    System.out.println(s.getName() + s.getTnum());
}

队列通常以FIFO方式对元素进行排序。因此,如果您对使用令牌编号对队列进行排序感兴趣,您应该检查优先级队列

通过调用
add
方法,您已经在向
stdtQ
队列添加新元素。如果要将其他学生添加到该队列中,首先必须创建对象(例如,通过从输入中获取值),并使用
add
方法添加对象

您可以按如下方式打印队列中的所有学生:

for(Student s : stdtQ){
    System.out.println(s.getName() + s.getTnum());
}

谢谢它应该是
stdtQ.add(新学生(sc.next(),sc.nextInt())多谢!它应该是
stdtQ.add(新学生(sc.next(),sc.nextInt())虽然