例如:
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
.
例如:
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
.
当您希望从不同的元素开始时迭代元素的方法是更改起始索引。
for(int i = 1; i < n; i++) {
// Iteration operation
}
i
是您唯一关心的事情,如果您希望从不同于 0 的位置开始。
将第一个元素设置为 null 与使用 for 循环遍历数组的方式无关。
你可以将它设置为任何东西,你可以用任何东西开始你的 for 循环。
但是,决定您不喜欢基于零的索引是没有意义的。
这就是所有编程语言的工作方式(据我所知)。
无法设置数组的初始索引:它仍然有第一个(索引 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);
但你为什么首先需要它呢?