如何从数组中的指定值开始?

时间:2012-04-14 00:38:28

标签: java

例如:

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

3 个答案:

答案 0 :(得分:3)

当您希望从另一个元素开始时迭代元素的方法是更改​​起始索引。

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

i是你唯一关心的事情,如果你想在一个不同于0的地方开始。

答案 1 :(得分:1)

将第一个元素设置为null与使用for循环迭代数组的方式无关。

您可以将其设置为任何内容,您可以使用任何内容启动for循环。

然而,决定你不喜欢基于零的索引是没有意义的。

这就是所有编程语言的工作方式(据我所知)。

答案 2 :(得分:1)

无法设置数组的初始索引:它仍然具有第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);

为什么首先需要它?