查找数组中的数字

时间:2014-10-13 05:33:57

标签: java arrays

我想问一下,每次运行程序时,我的错误导致if语句为false。我还尝试使用.equals(num)而不是Array.asList(num)来检查值是否在那里,但这导致for循环多次重复“Not in database”。

1 个答案:

答案 0 :(得分:3)

Arrays.asList(Data)创建一个列表,其唯一元素是int数组(即List<int[]>)。这就是Arrays.asList(Data).contains(num))总是返回false的原因。

尝试将阵列更改为:

Integer Data[] = new Integer[n];

这将使Arrays.asList(Data)创建一个包含原始数组所有整数的IntegerList<Integer>)列表,这正是您所需要的。

此行为的原因是Arrays.asList需要一个或多个Object作为输入。如果传递Object的数组(例如Integer[]),则相当于传递多个Object。但是,如果传递一个基元数组(例如int[]),则输入中唯一的Object是数组本身,因此Arrays.asList()创建一个列表,其唯一的元素是该数组