首先,我想从AddPatient()
方法检索患者链表,并在ListPatient()
方法上显示。
我尝试通过更改public static void ListPatient()
来检索; public static void ListPatient(ListInterface<PatientDetails> patient)
的方法,但不起作用
package dsa;
import dsa.LList;
import dsa.ListInterface;
import java.sql.Time;
import java.util.Date;
import java.util.Scanner;
public class EmergencyClinic {
public static void main(String[] args){
MainMenu();
}
public static void MainMenu(){
int n = 0;
Scanner scan = new Scanner(System.in);
System.out.println("Welcome to Emergency Clinic!");
System.out.println("1. Add Patient");
System.out.println("2. Serve Patient");
System.out.println("3. List Patient");
System.out.print("Please choose your option :");
n = scan.nextInt();
switch(n){
case 1: AddPatient();
break;
case 2: ServePatient();
break;
case 3: ListPatient();
break;
default : System.out.println("Sorry! Invalid Input. Returning to main menu...\n"); MainMenu();
break;
}
}
public static void AddPatient(){
ListInterface<PatientDetails> patient = new LList<PatientDetails>();
Scanner scan = new Scanner(System.in);
int num=0;
System.out.print("Please Enter Name :");
String name = scan.nextLine();
System.out.print("Please Enter IC No :");
String ic = scan.nextLine();
System.out.print("Please Enter Contact Number :");
String contactNum = scan.nextLine();
System.out.print("Please Enter Gender :");
String gender = scan.nextLine();
Date date = new Date();
Long time = date.getTime();
System.out.print("Please Enter Reason :");
String reason = scan.nextLine();
System.out.print("Please Enter Seriousness :");
String seriousness = scan.nextLine();
if(patient.isEmpty())
{
patient.add(new PatientDetails(name, ic, contactNum, gender,date ,time ,reason,seriousness ));
}
MainMenu();
}
public static void ServePatient(){
}
public static void ListPatient(){
ListInterface<PatientDetails> patient = new LList<PatientDetails>();
System.out.println(patient.getLength());
if (!patient.isEmpty())
{
for(int i=0;i<patient.getLength();i++){
patient.getEntry(i);
}
}
else
{
System.out.println("Error in list patients!");
}
}
}
答案 0 :(得分:1)
似乎add,list和serve是三个函数。您的所有方法都是静态的,那么您需要一个静态PatientList
变量。也就是说,当用户选择add
时,他在列表中添加了元素,当他选择list
时,将显示相同的列表对象。
在您班级的代码中声明:
private static ListInterface<PatientDetails> patient = new LList<PatientDetails>();
在你的添加和列表方法中,直接使用这个变量。
答案 1 :(得分:0)
您的所有方法都标记为无效。这意味着没有回报价值。有人可能会说,它们是程序,而不是功能。 如果要返回List,则必须更改签名:
public static List AddPatient()
然后,您可以使用关键字 return 返回方法列表。
return patient;
括号()中的参数都是输入参数。
这是方法/功能的一个非常基本的概念。我建议为初学者阅读一本书,以了解Java的基础知识。
Java也有自己的linked list通用实现。如果你对它的实现没有任何特殊要求,你应该使用它。