Java 在此函数中添加来自参数的搜索值
这个问题跟在我之前的一个问题之后,就是如何解决这个问题 在@Andreas给我的这个函数中:Java 在此函数中添加来自参数的搜索值,java,arrays,Java,Arrays,这个问题跟在我之前的一个问题之后,就是如何解决这个问题 在@Andreas给我的这个函数中: private static void printFirstIndexOfRepeated(int[] values) { Integer firstIndex = null; Map<Integer, Integer> mapValueToIndex = new HashMap<>(); for (int i = 0; i < values.len
private static void printFirstIndexOfRepeated(int[] values) {
Integer firstIndex = null;
Map<Integer, Integer> mapValueToIndex = new HashMap<>();
for (int i = 0; i < values.length; i++) {
Integer prevIndex = mapValueToIndex.put(values[i], i); // put() returns old value, or null
if (prevIndex != null && (firstIndex == null || prevIndex < firstIndex))
firstIndex = prevIndex;
}
if (firstIndex != null)
System.out.println("First index of repeated: " + firstIndex);
else
System.out.println("No repeat found");
}
输出
repeated的第一个索引:1//它查找5并返回数组中repeated 5的最小索引值。
由于我缺乏Map编程知识,我是新手,只知道数组。我需要一些帮助来转换这个函数,并添加另一个参数,如(int number),以确定我要查找的女巫编号,而不是自动确定
所需的一个:
printFirstIndexOfRepeated(int[]值,int number)
因此,由于基本上只需要数组中给定数字第一次出现的索引,因此根本不需要映射。相反,您可以只使用一个简单的for循环:
private static int printFirstIndexOfRepeated(int[] values,int number) {
for(int i = 0; i < values.length; i++){
if(values[i] == number){
//System.out.println("The first index of " + number + " is " + i);
return i;
}
}
//System.out.println(number + " is not a member of the array.");
return -1;
}
私有静态int printFirstIndexOfRepeated(int[]值,int编号){
对于(int i=0;i
此函数返回给定数字的第一个索引,如果找不到该数字,则返回-1
。您可以取消对print
行的注释,如果您愿意,也可以获得输出(或者只是删除它们)。是的,当我输入number=5
返回1时,您就知道了。当我输入number=4
时,它返回2(因为它只出现一次)Ok,您希望函数返回一个数字还是只打印结果?如果您输入的数字不在数组中,该怎么办?Hoops,如果数字不在数组中,则管理尚未实现,并且返回索引的函数
private static int printFirstIndexOfRepeated(int[] values,int number) {
for(int i = 0; i < values.length; i++){
if(values[i] == number){
//System.out.println("The first index of " + number + " is " + i);
return i;
}
}
//System.out.println(number + " is not a member of the array.");
return -1;
}