2012-05-11 3 views
0

で配列にデータを追加します。私は「やる - ながら」しているそれぞれの間に配列に追加されるはずです5000の番号のループは、このようなループを実行します。がループ

問題は、すべての時間がループがあるということですループが終了すると、数値が上書きされ、データの最後の実行のみが配列に格納されます。

私はこのコードを使用します。

long cursor = -1; 
    long[] fArray = new long[100000]; // more than enough space in array 
    IDs ids = twitter.getFollowersIDs(name, cursor); // start with first page of 5000 numbers 

    do 
    {      
     ids = twitter.getFollowersIDs(name, cursor);    
     fArray = twitter.getFollowersIDs(name, cursor).getIDs(); // this gets Array with 5000 numbers every time until "empty" 
     cursor = ids.getNextCursor(); // jump to next array with 5000 new numbers  
    } while (ids.hasNext()); 

答えて

1

あなたはいつもあなただけの非常に巨大な配列の最初の5000個の要素に書いています。

代わりに、あなたは)別のローカル配列に呼び出し、その後、すべての信者の非常に大きな配列に5000人の現在のフォロワーをコピーするarraycopyを使う(getFollowersIDsの結果を割り当てます。

+1

この回答に間違いがあることを示すコメントを追加できますか?ありがとう。 – Bananeweizen

+0

優れた、まさに私が必要なもの。それは働いて、助けてくれてありがとう:) – Kris

0

fArray = twitter.getFollowersIDs(name, cursor).getIDs(); // this gets Array with 5000 numbers every time until "empty" あなたは配列fArrayに簡単な割り当てをしています。

は、あなたがこの

long tempArr[] = twitter.getFollowersIDs(name, cursor).getIDs(); 

for (int i = previous_length_of_array; i < previous_length_of_array + tempArray.length; i++) 
    fArray[i] = tempArr[1 - previous_length_of_array]; 

PSのようなものを使用する必要があります。上記のコードはテストされずにコンパイルされていない 、ちょうどあなたが

0

ひとつのアイデアを何をすべきかの例を与えることを試みたfArrayを宣言することです2次元であること。 サンプルの短いコード: long fArray [] [];

int index = 0;

いくつかのコード ...

fArray [インデックス] = twitter.getFollowersIDs(名前、カーソル).getIDs([ループ内開始])。 index ++;

いくつかのコード... [ループ内の終了]

私は、それが明確でシンプルだ願っています。