繁体   English   中英

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

[英]Java: How to add or create a new object with arguments and add it to a queue?

我正在编写一个程序,针对该程序,将为要去特定系或部门的出纳员的学生提供一个令牌号,该令牌号会自动生成,并排成一队,等待轮到他们进入。 该程序应允许用户通过将其姓名和令牌编号添加到系统中的其他功能中,从而在队列中插入新学生。

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

到目前为止,这是我提出的内容:

学生班

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*/
      }



    }


}

您应该写:

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

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

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

您可以像这样打印队列中的所有学生:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM