Java 访问数组中对象的索引位置

Java 访问数组中对象的索引位置,java,arrays,object,indexing,Java,Arrays,Object,Indexing,嗨,我想知道如何访问数组中对象的索引位置。我有一个搜索方法,搜索我想要的对象,然后一旦我有了这个,我想能够检索它的索引位置。我的搜索方法如下: public megs find(String lName) // find specified value { int j; int location; for(j=0; j<nElems; j++){ // for each element if(a[j].getLast().equals(lN

嗨,我想知道如何访问数组中对象的索引位置。我有一个搜索方法,搜索我想要的对象,然后一旦我有了这个,我想能够检索它的索引位置。我的搜索方法如下:

public megs find(String lName)      // find specified value
{
  int j;
  int location;
  for(j=0; j<nElems; j++){          // for each element
     if(a[j].getLast().equals(lName))       // found item?
        location=j;
     break;                 // exit loop before end
  }
  if(j==nElems)             // gone to end?
     return null;               // yes, can’t find it
   else
     return a[j];               // no, found it

  } // end find
public-megs-find(String-lName)//查找指定值
{
int j;
int定位;

对于(j=0;j至少这里的代码是完全错误的:

for(j=0; j<nElems; j++){          // for each element
 if(a[j].getLast().equals(lName))       // found item?
    location=j;
 break;                 // exit loop before end
}
公共类java1{
静态字符串a[]={ak”,“jk”,“kl”};
公共静态整型get(字符串sk){
int j;
对于(j=0;j
public类java1{
公共静态int-get(字符串sk,字符串a[],int-n){
int j;

对于(j=0;j当您可以使用
a.length
时,为什么要维护一个单独的length属性?您是否检查过数组中的第一个元素是否始终是您要查找的元素(如果这不是预期的行为,可能意味着代码中的其他地方存在错误)?这是一个很好的例子,说明了为什么在循环和条件中总是使用大括号。只有
a
的长度从不改变时,才可以将数组和改变的长度作为参数传递。数组本身总是知道它有多大,这就是为什么所有数组对象都有一个公共
length
属性。使用(在本例中)<代码> >长度因为循环上界总是比手动跟踪大小更可靠。我不是ASKER——我只是想推动你改进你的答案。你可能还想考虑代码只回答不被优化。解释(简明)你的代码在做什么,因为虽然这对你和我来说可能是显而易见的,但对其他来自谷歌的读者来说并不一定是显而易见的。好吧,我接受这一点。我以后会记住这一点。
for(j=0; j<nElems; j++){          // for each element
 if(a[j].getLast().equals(lName))       // found item?
    location=j;
 break;                 // exit loop before end
}
for(j=0; j<nElems; j++){          // for each element
 if(a[j].getLast().equals(lName)) {       // found item?
    location=j;
    break;                 // exit loop before end
 }
}
public class java1 {

static String a[]={"ak","jk","kl"};

public static int get(String sk){
    int j;
    for(j=0;j<3;j++){
        if(a[j].equals(sk)){
            return j;
        }
    }

    return -1;

}

public static void main(String[] args) {
    int x=get("jk");
    System.out.println(x);
}
}
public class java1 {

public static int get(String sk,String a[],int n){
    int j;
    for(j=0;j<n;j++){
        if(a[j].equals(sk)){
            return j;
        }
    }

    return -1;

}

public static void main(String[] args) {
    String a[]={"ak","jk","kl"};
    int x=get("jk",a,3);
    System.out.println(x);
}
}