0

私はこのクラスを持っており、優先入力後の配列の値を表示します。

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になるようにしたいのですが、どうすればそれをプログラムに入れることができますか?

4

3 に答える 3

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);
    }
于 2012-12-06T01:37:13.953 に答える
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、インデックスを返す必要があります。

于 2012-12-06T01:32:53.353 に答える
1

Java の優れた点の 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;
}
于 2012-12-06T01:52:15.010 に答える