Java 如何检查数组是否不';不包含使用if语句的值
在我的代码中,我创建了一个数组:Java 如何检查数组是否不';不包含使用if语句的值,java,arrays,Java,Arrays,在我的代码中,我创建了一个数组: static BankClient clients[] = new BankClient[MAXCLIENTS]; // This array holds the clients up to a max of 1000 我需要做的是检查这个数组,看看它是否包含一个特定的int。通过使用for循环和if语句,我成功地做到了这一点,如下所示: System.out.println("\n Ask for ID"); System.out
static BankClient clients[] = new BankClient[MAXCLIENTS]; // This array holds the clients up to a max of 1000
我需要做的是检查这个数组,看看它是否包含一个特定的int。通过使用for循环和if语句,我成功地做到了这一点,如下所示:
System.out.println("\n Ask for ID");
System.out.println(">");
IDInput = input.nextInt();
System.out.println("Check ID \n");
for (int i = 0; i < clients.length; i++)
{
BankClient managementOptions = clients[i];
if (managementOptions.getID() == IDInput)
{
// code in here
}
然而,我似乎不知道该把什么放在括号里。任何帮助都将不胜感激!这个网站还是很新的,所以如果您需要更多信息,我会尽力添加。如果您发现了以下信息,只需在循环中跟踪即可:
boolean found=false;
for (int i = 0; i < clients.length; i++)
{
BankClient managementOptions = clients[i];
if (managementOptions.getID() == IDInput)
{
found=true;
break; // no need to search further
}
}
// no element found
if (!found){
System.out.println("Error. Client does not exist.");
}
boolean-found=false;
for(int i=0;i
您不能只在循环中打印错误,因为您需要确保查看了整个数组。System.out.println(“\n请求ID”);
System.out.println("\n Ask for ID");
System.out.println(">");
IDInput = input.nextInt();
System.out.println("Check ID \n");
boolean isPresent = false;
for (int i = 0; i < clients.length; i++) {
BankClient managementOptions = clients[i];
if (managementOptions.getID() == IDInput) {
isPresent = true
// code in here
}
}
if (! isPresent) {
System.out.println("Error. Client does not exist.");
}
System.out.println(“>”);
IDInput=input.nextInt();
System.out.println(“检查ID\n”);
布尔值isPresent=false;
对于(int i=0;i
通过流API的简单解决方案:
Boolean isPresent = Arrays.stream(clients).anyMatch(x -> x.getID().equals(IDInput));
这在没有为数组中的每个对象打印错误方面起到了作用,但当我输入数组中不存在的内容时,它仍然会崩溃,例如数组的值为1,2,3,4,但我输入了7。我怎样才能解决这个问题?谢谢你的帮助!定义“崩溃”。会发生什么?您得到了什么异常和堆栈跟踪?这是出现的全部错误:线程“main”java.lang.NullPointerException中的异常:无法调用“groupCoursework.BankClient.getID()”,因为groupCoursework.UserInterface.managementOptions(UserInterface.java:84)中的“managementOptions”在groupCoursework.UserInterface.main中为null(UserInterface.java:27)当我输入数组中不存在的内容时会出现此问题是的,因为数组中的某些元素为null。如果(managementOptions!=null&&managementOptios.getID()=IDInput)仅在元素不为null以及不能使用数组时检查ID。请使用可根据需要增长且仅包含非null值的ArrayList。
Boolean isPresent = Arrays.stream(clients).anyMatch(x -> x.getID().equals(IDInput));