Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何检查数组是否不';不包含使用if语句的值_Java_Arrays - Fatal编程技术网

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));