Java 我的数组有问题,存储数字并检查是否有真假

Java problem in my array, storage numbers and check if there are true or false

我的数组有问题。 这个想法很简单,我在数组中存储填充数字,我需要搜索这些数字,可以是一个或多个数字,如果我存储的数字存在,我想得到答案,如果不存在,则告诉我 True 或 False . 当方法检查 True 时它工作,但是当检查 false 时它不像 true 那样工作,为什么? 这是代码:

public static void main(String[] args) {
    int[] numbers;
    Scanner scanTotalOfNumbers = new Scanner(System.in);
    System.out.println("How many numbers going to storage?");
    numbers= new int[scanTotalOfNumbers.nextInt()];
    Scanner scanNumber= new Scanner(System.in);
  for(int i=0;i< numbers.length;i++){
      System.out.println("Write the number.");
      numbers[i]= scanNumber.nextInt();
  }
  System.out.println("list of all the numbers");
  for(int a:numbers){
      System.out.println(a);
  }
  int[] search;
  Scanner scanNumbersToSearch = new Scanner(System.in);
  Scanner scanSearch = new Scanner(System.in);
  System.out.println("How many numbers you want to search?");
  search= new int[scanSearch.nextInt()];
  for(int i=0;i< search.length;i++){
      System.out.println("write the numbers");
      search[i]= scanNumbersToSearch.nextInt();
  }
  System.out.println("list of numbers to search");
  for(int i: search){
      System.out.println(i);
  }
  searchNumbers(numbers, search);

  }


static void searchNumbers(int[] numbersIn, int... searchIn) {
    for (int i: numbersIn) {
        for (int a : searchIn) {
            if (i == a) {
                System.out.println("true " + a);
            } else {
                System.out.println("false " + a);
            }
        }
    }
}

代码有很多打印件供我可视化。 为什么要这样假装?

使用数组的代码:

static void searchNumbers(int[] numbersIn, int searchIn [] ) {
    for(int i=0;i<searchIn.length;i++) {
         for(int j=0;j<numbersIn.length;j++) {
            if(searchIn[i]==numbersIn[j]) {
                System.out.println(searchIn[i]+"   Exist in your array");
                break ;
            }
            if(j==(numbersIn.length)-1) {
                System.out.println(searchIn[i]+"   Does not exist in your array" );
            }
        }
    }
}

您可以将要搜索的数组元素放在 ArrayList 中,然后使用 .contains() 方法:

static void searchNumbers(int[] numbersIn, int searchIn [] ) {
    List<Integer> intList = new ArrayList<Integer>(searchIn.length);
    for (int i : searchIn)
    {
        intList.add(i);
    }
    for(int i : numbersIn) {
        if(intList.contains(i)) {
            System.out.println(i+"  Exist in your array");
        }
        else {
            System.out.println(i+"  Does not exist in your array");
        }
    }
}