如何找到数组元素的索引?

时间:2012-12-06 01:27:38

标签: java indexing

我有这个类,它在首选输入后显示数组的值:

class MyArrayList {

private int [] myArray;
private int size;

public MyArrayList (int value, int seed, int inc){

    myArray = new int [value];
    size = value;
    for (int i = 0; i < size; i++) {
        myArray [i] = seed;
        seed += inc;        
    }       
}   

}

public class JavaApp1 {

    public static void main(String[] args) {
        MyArrayList a = new MyArrayList(5, 2, 1);
        a.printList();

}
}

此程序显示以下输出: 2 3 4 5 6 现在我想找到4的索引,这样就可以了2但是我怎么能把它放到程序中呢?

3 个答案:

答案 0 :(得分:2)

为值循环,然后你有索引,你可能想要这个作为MyArrayList类的函数

    int[] myArray = {2,3,4,5,6};
    for (int i = 0; i < myArray.length; i++) 
    {
        if( myArray[i] == 4 )
            System.out.println( "index=" + i);
    }

答案 1 :(得分:1)

您需要在MyArrayList类中编写一个方法,该方法获取您正在查找的值,并将其定位在数组中。要找到它,只需循环遍历数组,直到值匹配。

像这样......

public int findIndexOf(int value){
    for (int i=0; i<size; i++) {
        if (myArray[i] == value){
            return i;
        }
    }    
    return -1; // not found   
}   

现在你需要在你的JavaApp1类中调用这个新方法,它应该返回索引。

答案 2 :(得分:1)

关于Java的最好的部分之一是它是开源的,您可以查看所有标准API的来源。

这是ArrayList.indexOf(Object)方法的工作方式:

/**
 * Returns the index of the first occurrence of the specified element
 * in this list, or -1 if this list does not contain the element.
 * More formally, returns the lowest index <tt>i</tt> such that
 * <tt>(o==null&nbsp;?&nbsp;get(i)==null&nbsp;:&nbsp;o.equals(get(i)))</tt>,
 * or -1 if there is no such index.
 */
public int indexOf(Object o) {
if (o == null) {
    for (int i = 0; i < size; i++)
    if (elementData[i]==null)
        return i;
} else {
    for (int i = 0; i < size; i++)
    if (o.equals(elementData[i]))
        return i;
}
return -1;
}