gpt4 book ai didi

java - 第二条记录未存储在数组列表中

转载 作者:行者123 更新时间:2023-12-02 07:03:21 25 4
gpt4 key购买 nike

我有一个数组列表,其中的记录存储为对象。在另一种形式中,我允许用户输入 ID 并使用相应的 ID 检索该记录的数据。

我的问题是,我只能检索一条记录,这意味着只能检索我存储在数组列表中的第一条记录。

如果我输入第二条记录,并且尝试使用 id 搜索记录,我会收到消息“无效 id”,这是我分配的消息,以确保用户不会输入无效 id。

这是我用来将对象存储到数组列表中的代码:-

patient_class patients=new patient_class(firstname,lastname,initials,gender,birthday,birthmonth,birthyear,contactnumber,address,bloodgroup,patientid);

patientlist.add(patients);

这是我的代码,用于检查 arraylist 是否包含 id。

public boolean checkrecord(ArrayList<patient_class>patients,String search)
{

for(patient_class patient : patients)
{
if(patient.getid().contains(search))
{
return true;
}

}
return false;
}

如果这是真的,我已经创建了一个单独的构造函数来查找给定 id 的记录。

这是代码:-

public patient_class searchrecord(ArrayList<patient_class> patients, String search)
{


for(patient_class patient: patients) //used enhanced for loop


if(patient.getid().equals(search))
{

return patient;

}
else
{
return null;
}
return null;
}

为什么数组列表中只能输入一条记录而不能输入两条记录?当我输入第二条记录并单击注册时,我的程序显示“注册成功”,但我无法搜索该记录,但我可以使用我制作的另一种方法删除该记录。

我做错了什么?

最佳答案

这就是问题:

for(patient_class patient: patients) //used  enhanced for loop
if(patient.getid().equals(search))
{
return patient;
}
else
{
return null;
}
return null;

由于您的 else block ,如果第一个患者与您要查找的患者不匹配,您将返回 null ,而不是寻找其他匹配项。您应该去掉 else block 。我还会添加大括号以使控制流程更清晰:

for (patient_class patient : patients) {
if (patient.getid().equals(search)) {
return patient;
}
}
// Only return null if we've checked *all* patients
return null;

此外,我强烈建议您开始遵循 Java 命名约定,将 patient_class 重命名为 Patient 并将 getid 方法到 getId:

for (Patient patient : patients) {
if (patient.getId().equals(search)) {
return patient;
}
}
return null;

关于java - 第二条记录未存储在数组列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16378341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com