-6

例えば:

String[] someArray = {null, "I want to start from here", "other element", "other element"};

for(int i = 1; i < someArray.length; i++)
{
    System.out.println(someArray[i]);
}

最初の要素を null に設定する以外に、配列の初期インデックスを設定する方法はありますか?

forループで、設定したいi = 1

4

3 に答える 3

3

別の要素で開始したい場合に要素を反復処理する方法は、開始インデックスを変更することです。

for(int i = 1; i < n; i++) {
    // Iteration operation
}

i0 以外の場所から開始したい場合、あなたが気にかけていることは 1 つだけです。

于 2012-04-14T00:47:08.900 に答える
1

配列の初期インデックスを設定する方法はありません。まだ最初の (インデックス 0) 要素がありますが、たまたまnullあなたの場合です。必要なインデックスからいつでも反復を開始できますが、スペースが無駄になります。

あなたはいつでも自分のクラスを作ることができます...

class WeirdIndexArray<T> {
    private final T[] internalArray;
    public final int firstIndex;
    public final int indexBound;
    public WeirdIndexArray( int firstIndex, int size ){
        internalArray = new T[size];
        this.firstIndex = firstIndex;
        indexBound = firstIndex+size;
    }
    public void set( int index, T item ){ internalArray[index-firstIndex] = item; }
    public T get( int index ){ return internalArray[index-firstIndex]; }
}

そして使って...

WeirdIndexArray<String> array = new WeirdIndexArray<>(1,3);

for( int i=1; i<array.indexBound; i++ )
    array.set(i,"This is item "+i);

しかし、そもそもなぜそれが必要なのですか?

于 2012-04-14T00:51:33.393 に答える
1

最初の要素を null に設定することは、for ループで配列を反復処理する方法とは関係ありません。

何にでも設定でき、for ループを何からでも開始できます。

ただし、ゼロベースのインデックス作成が気に入らないと判断しても意味がありません。

それがすべてのプログラミング言語の仕組みです (私の知る限り)。

于 2012-04-14T00:44:50.777 に答える