【问题标题】:Finding if given Integer is in Array or not using Arraylist contains ()使用 Arraylist contains () 查找给定的 Integer 是否在 Array 中
【发布时间】:2014-04-30 15:22:29
【问题描述】:

检查给定输入是否在数组中时遇到问题。下面只是我写的示例代码。出于某种原因,无论我输入什么,即使数字在数组中,它也会输出“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");
}

【问题讨论】:

    标签: java arrays if-statement


    【解决方案1】:

    Arrays.asList(array) 会将int[] array 转换为List&lt;int[]&gt;,然后List&lt;int[]&gt;#contains 将尝试搜索Integer。如前所述,它永远不会找到它。

    解决方法:

    • int[] 更改为Integer[]

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

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

    【讨论】:

    • 谢谢先生。工作得很好
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2013-05-20
      • 2015-05-12
      • 1970-01-01
      • 2014-11-01
      • 2020-11-29
      • 2013-04-13
      • 2013-04-22
      • 2012-01-03
      • 2022-01-23
      相关资源
      最近更新 更多