我有一个 account_numbers 数组。我正在从用户那里获取输入并尝试查看输入是否存在于数组中。我一直在尝试在参数中使用 for 循环的 if 语句,但我觉得这太过分了。我错过了什么吗?
问问题
14685 次
4 回答
4
您可以使用 Arrays 实用程序类及其简单的 BinarySearch 算法:
Arrays.sort(array); // must sort before next line
boolean found = Arrays.binarySearch(array, someValue) > -1;
于 2012-12-06T04:44:50.767 回答
2
如果您仍想在不使用列表的情况下遍历数组,则可以使用 for 循环的这种基本结构:
boolean validInput = false;
for (int i = 0; i < account_numbers.length; i++) {
if (account_numbers[i] == userInput) {
validInput = true;
break;
}
}
于 2012-12-06T04:23:41.243 回答
1
最简单的方法是将数组转换为列表并使用contains
如下方法:
Long[] account_numbers = new Long[SIZE];//Your existing array
//get the list from array
List<Long> accountNumbers = Arrays.asList(account_numbers);
//check the desired account exist or not
Long accountToSearch= new Long("12345");
if(accountNumbers.contains(accountToSearch)){
//account exist
}
于 2012-12-06T04:14:51.010 回答
0
Integer arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int a = 7;
boolean isThere = false;
List<E> list = new ArrayList<>();
list.addAll((Collection<? extends E>) Arrays.asList(arr));
// enter array into the list
if (list.contains(a)) {
isThere = true;
}
System.out.println(isThere);
于 2018-08-25T16:55:20.917 回答