2014-12-13 2 views
-1

안녕하세요, 나는 3 arrayList를 trackNum, 이름과 기간이있다. arraylist의 콘텐츠가 연결됩니다. 즉, trackNum의 경우 색인 1 이름과 기간이 연결됩니다.동일한 순서로 여러 arrayList를 섞으시겠습니까?

그래서 내가 섞은 숫자로 채워진 세 번째 배열 목록을 만들었습니다. 이 숫자는 시스템 출력의 색인으로 사용됩니다.

각 배열 목록의 내용이 계속 연결되도록 목록을 섞어 야합니다. 이것은 내가 시도한 것이다.

public void shuffleTracks(String tracks){   
    for(int i = 0; i < name.size(); i++){ 
     numbers.add(i); 
    } 
    Collections.shuffle(numbers); 
    Iterator<Integer> itr = numbers.iterator(); 
    while (itr.hasNext()){ 
     System.out.println(itr.next()); 
    } 

    for(int a = 0; a < name.size(); a++){ 
     System.out.println(trackNum[numbers[a]] ": " + name[numbers[a]] " " + duration[numbers[a]]); 
    } 
} 

내가 마지막 시스템 인쇄 라인에 내 모든 오류를 받고 있어요, 오류가 어떤 도움이 greatful 것

enter image description here

말한다.

+1

필요한 모든 정보로 클래스를 생성 한 다음 해당 클래스의 인스턴스로 단일 배열 목록을 임의로 섞을 수 있습니다. –

+0

@ Jordão 예, 대답을하고 간단한 'Track' 수업을 보여주세요. – gknicker

+0

각 필드에 대해 배열을 사용하는 대신 각 필드와이 클래스의 배열/컬렉션이있는 클래스를 만드는 것이 좋습니다. –

답변

0

직접 응답은 목록 등의 컬렉션에 대괄호 ([index])를 사용하는 배열 액세스 대신 get(int index)을 사용하는 것이 좋습니다.

는 그래서는 다음과 같습니다

numbers.get(a) 

대신 :

numbers[a] 

자바 배열 액세스 괄호로 get 방법을 대체 할 문법 설탕이 없습니다.

+0

문자열을 만들 때'+ '연산자가 빠졌으므로 대신'printf'를 사용하십시오. –

+0

어드바이스 주셔서 감사합니다.하지만 여전히 이러한 오류가 발생하고 있습니다. http://imgur.com/15HzYkm, 선생님이 arraylists를 요청했습니다 :/ – IeuanW

+0

물론 다른 'ArrayList' 인스턴스에 대해서도 동일하게 처리해야합니다. '... –