2013-02-13 2 views
1

대기 행렬을 사용하여 기수 배열을 사용하여 기수 정렬을 얻으려고합니다. 스위치 문이 길어지는 것을 피하기 위해 배열을 올바르게 초기화하는 데 문제가 있습니다. 생성자와 구현 예가 아래에 나와 있습니다.배열의 배열이 컴파일되지 않습니다 - 기호 오류를 찾을 수 없습니다.

나는 컴파일하려고 할 때 심볼 오류를 찾을 수 없다.

public static radixj(){ 
    IntQueue[] buckets = new IntQueue[10]; 
    for (int i = 0; i < 10; i++) 
    buckets[i] = new IntQueue(); 
    } 

public static void place(int temp, int marker) 
{ 
    int pos = temp % marker; 
    buckets[pos].put(temp); 
} 

나는 정말 저의 실수는 틀림없지 만 찾을 수는 없다고 확신합니다. 어떤 도움이라도 대단히 감사하겠습니다. 코드

IntQueue[] buckets = new IntQueue[10]; 

에서

+0

에 해결 될 수없는 무엇 상징? 'IntQueue' 란 무엇입니까? 패키지에 담겨 있습니까? 표시된 코드가 다른 패키지에 있으면 가져 왔습니까? –

+0

'public static radixj()'메소드는 리턴 타입도 없다. 그것이 생성자가되기로되어 있지 않는 한. 이 경우'static '이되어서는 안된다 (그리고 클래스 이름은 대문자이어야한다). –

답변

3

당신이 그것을 사용할 수 없습니다 그럼 반환 유형

public static void radixj() 

이 있어야합니다 기능

public static radixj() 

에 지역 변수입니다 다른 함수

buckets[pos].put(temp); 

다음을 사용하여 정적 변수 클래스

class Foo { 
    static IntQueue[] buckets = new IntQueue[10]; 
    ... 

액세스를 선언해야합니다 Foo.buckets

class Foo { 
    public static IntQueue[] buckets = new IntQueue[10]; 
    public static void radixj() { 
     for (int i = 0; i < 10; i++) { 
      Foo.buckets[i] = new IntQueue(); 
     } 
    } 

    public static void place(int temp, int marker) { 
     int pos = temp % marker; 
     Foo.buckets[pos].put(temp); 
    } 
} 
+0

정확히 그랬습니다. 대단히 감사합니다. –

1

radixj()의 반환 형식이없는 및 buckets 변수

관련 문제