[英]Can I simplify this using recursion?
不确定我是否可以简化这两个 for 循环,因为它们很相似? 任何帮助表示赞赏。 我可以使用递归吗?
public static Integer Search(int array[])
{
//Loop through original array
for(int compare : array)
{
int count = 0;
//Will loop through array and compare each integer to compare
for(int currentInt : array)
{
//Comparing currentInt to compare
if (currentInt == compare)
count += 1;
//If the currentInt is in the array twice
if (count == 2)
return currentInt;
}
}
return null;
}
如果您想获取数组中出现两次的第一个数字,您可以创建一个数字及其计数的映射,当计数为 2 时中断执行流程。
就像是
public Integer search(int[] array) {
Map<Integer, Integer> counts = new HashMap<>();
for (int a : array) {
int count = counts.getOrDefault(a, 0);
count++;
if (count == 2) {
return a;
}
counts.put(a, count);
}
return null;
}
我没有理解你的方法的目的。
但是如果你试图从数组中找到一个元素的索引
尝试这样的事情:
System.out.println(Arrays.binarySearch(new int[] {1 , 2, 3}, 3));
另外,如果是这种情况,在“ public static Integer search(int array[])
”中搜索您正在尝试的键? 搜索方法名称也建议将键作为参数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.