Java 查找给定整数是否在数组中或未使用Arraylist contains()

Java 查找给定整数是否在数组中或未使用Arraylist contains(),java,arrays,if-statement,Java,Arrays,If Statement,检查给定输入是否在数组中有问题。下面是我编写的示例代码。出于某种原因,无论我输入什么,即使数字在数组中,它也会输出“not Okay”。如有任何建议或帮助,将不胜感激 public static void main (String[] args) { Scanner input = new Scanner(System.in); int array [] = new int[10]; System.out.println("Please enter the 10 posi

检查给定输入是否在数组中有问题。下面是我编写的示例代码。出于某种原因,无论我输入什么,即使数字在数组中,它也会输出“not Okay”。如有任何建议或帮助,将不胜感激

public static void main (String[] args) {
    Scanner input = new Scanner(System.in);
    int array [] = new int[10];
    System.out.println("Please enter the 10 positive integers for BST:"); 
    for (int i = 0 ; i < array.length; i++ ) {
        array[i] = input.nextInt();
    }
    System.out.println("Enter node to delete");
    if (Arrays.asList(array).contains(input.nextInt())){                
        System.out.println("ok");
    } else
        System.out.println("not Okay");
}
publicstaticvoidmain(字符串[]args){
扫描仪输入=新扫描仪(System.in);
int数组[]=新的int[10];
System.out.println(“请输入BST的10个正整数:”);
for(int i=0;i
数组。asList(array)
int[]array
转换为
列表
,然后
List#contains
将尝试搜索一个
整数
。如前所述,它永远也找不到它

解决方法:

  • int[]
    更改为
    Integer[]

  • 创建一个接收
    int
    的方法,并搜索数组中的元素

(答案中不会显示代码,因为问题看起来像是家庭作业)。

数组。asList(array)int[]array转换为List,然后List#contains将尝试搜索整数。如前所述,它永远也找不到它

解决方法:

  • int[]
    更改为
    Integer[]

  • 创建一个接收
    int
    的方法,并搜索数组中的元素


(答案中不会显示代码,因为问题看起来像是家庭作业)。

您可以使用Arrays.binarySearch()。它返回键的索引(如果它包含在数组中);否则,((插入点)-1)。在执行以下操作之前,必须使用
sort()
方法:

Arrays.sort(array);
if (Arrays.binarySearch(array, input.nextInt()>=0)

您可以使用
Arrays.binarySearch()
。它返回键的索引(如果它包含在数组中);否则,((插入点)-1)。在执行以下操作之前,必须使用
sort()
方法:

Arrays.sort(array);
if (Arrays.binarySearch(array, input.nextInt()>=0)

谢谢你,先生。很好,谢谢你,先生。工作很好