2012-05-11 2 views
0

에 배열에 데이터를 추가 루프가 완료되면 숫자가 덮어 쓰여지고 데이터의 마지막 실행 만 배열에있게됩니다.는 "이 동안 할"내가 가진 루프

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 개 요소로 작성 :

은이 코드를 사용합니다.

대신 당신은)합니다 (getFollowersIDs의 결과를 할당 별도의 지역 배열에 전화 후 모든 추종자의 훨씬 더 큰 배열에 5000 현재의 추종자를 복사 arraycopy를 사용하고 싶습니다.

+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 [내부 루프 시작]; 색인 ++;

일부 코드 ... [루프 내부 종료]

내가 그 명확하고 간단 바랍니다.