2012-04-14 42 views
-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的第一個元素之外的陣列的inital索引?

在for循環中,我想設置i = 1

+4

你這樣做的目的是什麼? – markw 2012-04-14 00:40:38

+1

你爲什麼想這樣做?如果是像用戶類型1來引用第一個項目,那麼只需要減去1. – Wyzard 2012-04-14 00:41:01

+1

我不知道Java,但是如果有某種方法(我懷疑),請不要這樣做。 – Ryan 2012-04-14 00:41:13

回答

1

不同的地點有沒有辦法設置一個數組的初始指數開始:它仍然有一個1st(索引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); 

爲什麼將你需要擺在首位?

1

將第一個元素設置爲null與使用for循環遍歷數組的方式無關。

你可以將它設置爲任何東西,你可以用任何東西開始for循環。

但是,決定你不喜歡基於零的索引是沒有意義的。

這就是所有編程語言的工作原理(據我所知)。

3

當您希望從不同的元素開始時迭代元素的方式是更改開始索引。

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

i是你關心自己與唯一的事情,你應該希望比0

相關問題