Java 查找数组元素的索引
我目前正在使用一个数组来练习数组 我看了一下给定练习的解决方案,我不太明白那里发生了什么 有人能一步一步地给我解释一下吗Java 查找数组元素的索引,java,arrays,Java,Arrays,我目前正在使用一个数组来练习数组 我看了一下给定练习的解决方案,我不太明白那里发生了什么 有人能一步一步地给我解释一下吗 public class GettingIndexOfAnArray { public static int findIndex(int[] my_array, int t) { if (my_array == null) return -1; int len = my_array.length; int i = 0;
public class GettingIndexOfAnArray {
public static int findIndex(int[] my_array, int t) {
if (my_array == null) return -1;
int len = my_array.length;
int i = 0;
while (i < len) {
if (my_array[i] == t) return i;
else i = i + 1;
}
return -1;
}
public static void main(String[] args) {
int[] my_array = {25, 14, 56, 15, 36, 56, 77, 18, 29, 49};
System.out.println("Index position of 25 is: " +
findIndex(my_array, 25));
System.out.println("Index position of 77 is: " +
findIndex(my_array, 77));
}
}
公共类获取索引数组{
公共静态int findIndex(int[]my_数组,int t){
if(my_array==null)返回-1;
int len=我的数组长度;
int i=0;
而(我
将数组和要查找的值(t
)传递到findIndex()
首先,它检查null
,如果null
然后将len
设置为数组的长度
然后它从数组的位置0开始循环
在每次迭代中,它检查t
(t
是您要查找的值)的位置是否与数组中的位置匹配(第一次迭代是0,数组的第一个元素
)
如果它们匹配,则返回数组中的位置
它不断迭代,直到匹配为止,如果不匹配,则返回-1(同样,未找到-1)。解释
该方法从头到尾搜索数组,直到找到元素为止
让我们仔细看看这个方法:
public static int findIndex(int[] my_array, int t) {
if (my_array == null) {
return -1;
}
int len = my_array.length;
int i = 0;
while (i < len) {
if (my_array[i] == t) {
return i;
} else {
i = i + 1;
}
}
return -1;
}
返回-1
表示“未找到元素”
接下来,该方法设置一个循环,该循环应该从开始到结束进行迭代:
int len = my_array.length;
int i = 0;
while (i < len) {
...
i = i + 1;
}
如果值匹配,则找到元素并返回当前索引i
如果没有,循环将继续迭代。如果循环结束,则无法找到该值,因为已检查所有元素。因此,该方法最终返回-1
笔记
在Java中,变量名应使用camelCase且不使用下划线,因此myArray
将是一个更好的名称。名称本身也可以改进,那么值如何
可以使方法本身更易于阅读:
public static int findIndex(int[] values, int valueToSearch) {
// No values to search through
if (values == null || values.length == 0) {
return -1;
}
// Iterate all values
for (int i = 0; i < values.length; i++) {
if (values[i] == valueToSearch) {
return i;
}
}
// All values were iterated, value was not found
return -1;
}
公共静态int findIndex(int[]值,int valueToSearch){
//没有要搜索的值
if(value==null | | values.length==0){
返回-1;
}
//迭代所有值
对于(int i=0;i
非常简单:在数组上运行,直到找到元素t
,然后返回找到该元素的索引i
(如果未找到,则返回-1)。findIndex
方法只是扫描数组以查找值。如果您不理解这一点,那么您可能需要学习Java教程?哪一部分给你带来麻烦?你希望它做什么?在数组中搜索/查找是次优选择。这座建筑不是为这个设计的。唯一的方法是从开始到结束迭代,直到找到为止。如果需要fastcontains
,请使用不同的结构,如hashed once。
if (my_array[i] == t) {
return i;
}
public static int findIndex(int[] values, int valueToSearch) {
// No values to search through
if (values == null || values.length == 0) {
return -1;
}
// Iterate all values
for (int i = 0; i < values.length; i++) {
if (values[i] == valueToSearch) {
return i;
}
}
// All values were iterated, value was not found
return -1;
}