Java: 如何添加或创建带参数的新对象并将其添加到队列中?
Java: How to add or create a new object with arguments and add it to a queue?
我正在编写一个程序,为前往特定部门或教职员工收银台的学生提供一个自动生成的令牌号,他们排队等待轮到他们进入。该程序应允许用户通过将新学生的姓名和令牌编号添加到系统以及其他功能来将新学生插入队列。
我不知道如何将新学生添加到队列中。
以下是我到目前为止的总结:
学生class
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;
}
}
主要class
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());
}
我正在编写一个程序,为前往特定部门或教职员工收银台的学生提供一个自动生成的令牌号,他们排队等待轮到他们进入。该程序应允许用户通过将新学生的姓名和令牌编号添加到系统以及其他功能来将新学生插入队列。
我不知道如何将新学生添加到队列中。
以下是我到目前为止的总结:
学生class
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;
}
}
主要class
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());
}