gpt4 book ai didi

JAVA ArrayList类实例成员检查成员是否存在

转载 作者:行者123 更新时间:2023-12-02 13:19:06 25 4
gpt4 key购买 nike

我有一个问题,我现在尝试解决大约一周的时间,但几乎没有任何进展。因此我决定向“强大”的Stackoverflow请教。抱歉,如果这对于经验丰富的 JAVA 程序员来说似乎微不足道。

我有一个扩展自定义类的 ArrayList 对象。我的类名为“AddMitglied”,旨在将成员存储在我的程序中。用户将添加新成员,并将它们存储在 ArrayList 中。

软件包 mitgliederverwaltung;

public class AddMitglied {

public String addLastName;
public int addmemberNumber;
public String addFirstName;
public String adddateobBirth;
public String addstreet;
public int addNumber;
public int addPlz;
public String addtown;
public String addEmailadresse;
public int addTelefonnumber;

AddMitglied(String addLastName,int addmemberNumber,String addFirstName,
String adddateobBirth,String addstreet,int addNumber,
int addPlz,String addtown,String addEmailadresse,
int addTelefonnumber)
{
this.addLastName = addLastName;
this.addmemberNumber = addmemberNumber;
this.addFirstName = addFirstName;
this.adddateobBirth = adddateobBirth;
this.addstreet = addstreet;
this.addNumber = addNumber;
this.addPlz = addPlz;
this.addtown = addtown;
this.addEmailadresse = addEmailadresse;
this. addTelefonnumber = addTelefonnumber;
}
}

显然我想获取某种成员(member)编号(public int addNumber)以便能够通过以下方式获取每个成员(member)

mitgliederliste.get(i).addNumber

到目前为止一切顺利,..我可以添加成员。我还想在用户输入新成员(member)时检查成员(member)号是否已经存在。为了检查程序中是否输入了“int”,我编写了以下方法:

public static int validateinputUser(){

System.out.println("give a number (only numeric values allowed): ");
Scanner inputUser = new Scanner(System.in);
int inputnumber = 0;

while (!inputUser.hasNextInt())
{
inputUser.next();
System.out.println("please enter numeric value");
}
inputnumber = inputUser.nextInt();
return 0;
}
}

到目前为止,这也工作正常..现在我的问题是如何检查用户输入是否是数字并检查该数字是否已存在于我的Arraylist中,以避免多个用户具有相同的用户编号...我大量搜索,但是不知何故没有找到合适的解决方案。

我在这里发现的是以下问题:Check if a value exists in ArrayList 。在那里我了解到有一个所谓的“包含”方法。但在那里他已经知道要使用里面的哪一个了。我无法使用“包含”方法,因为我必须以某种方式循环遍历所有成员并检查其中是否已有成员编号。如果是这样,用户必须留在循环内以迫使他选择另一个。

我在网上找到了一个网站,它告诉我如何执行此操作:http://crunchify.com/how-to-iterate-through-java-list-4-way-to-iterate-through-loop/但他在那里用字符串迭代 ArrayList,这很简单,但并不直接解决我的问题。那里提到的一个方法是

java.util.stream.Stream.forEach

但不知道如何在我的具体示例中使用它。

最佳答案

如果我理解正确的话,如果当前用户尚未使用 addNumber,您希望用户仅在 mitgliederliste 内大声说话。

您需要检查用户选择的 addNumber 是否与 mitgliederliste 中的当前用户无关。

public static boolean isValid(int inputnumber, ArrayList mitgliederliste) {
for (AddMitglied a : mitgliederliste) {

if (a.addNumber == inputnumber) {

return false;
}
}
return true;

}

将其包含在 while 循环中;

int inputnumber = 0;

while (inputnumber == 0 || !isValid(inputnumber)) {

while (!inputUser.hasNextInt()) {
inputUser.next();
System.out.println("please enter numeric value");
}
inputnumber = inputUser.nextInt();
}

关于JAVA ArrayList类实例成员检查成员是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43644074/

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