如何将链表从一个方法传递或检索到另一个方法



首先,我想从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!");
        }
    }
}

似乎添加、列出和服务是三个功能。你所有的方法都是静态的,那么你需要一个静态PatientList变量。也就是说,当用户选择add时,他在列表中添加了元素,当他选择list时,将显示相同的列表对象。

在类中的代码中声明:

private static ListInterface<PatientDetails> patient = new LList<PatientDetails>();

在添加和列出方法中,直接使用此变量。

所有方法都标记为 void。这意味着没有返回值。有人可能会说,它们是过程,而不是函数。如果要返回列表,则必须更改签名:

public static List AddPatient()

然后,您可以使用关键字返回从该方法返回列表。

return patient;

括号 () 中的参数都是输入参数。

这是方法/函数的一个非常基本的概念。我建议读一本让乞丐了解Java基础知识的书。

Java也有它自己的链表通用实现。如果你对它的实现没有任何特殊要求,你应该使用它。

相关内容

  • 没有找到相关文章

最新更新