2013-08-19 5 views
0

Я просмотрел весь стек stackoverflow и нашел несколько ответов на определение многомерного массива в Java. Черт, я даже оглянулся назад на мой старый код и нашел похожие примеры с удвоениями, но по какой-то причине, используя код из этих примеров, а также мой собственный код, я получаю ошибки как в Eclipse, так и в IntelliJ следующим образом:Правильное объявление многомерного массива типа int в Java

следующая не дает мне вышеуказанную ошибку:

public class foo 
{ 
    private int[][] bar() 
    { 
     int[][] test = new int[10][]; 
     test[0] = new int[100]; 
     test[1] = new int[500]; 
    } 
} 

следующая дает мне вышеуказанную ошибку:

public class foo 
{ 
    int[][] test = new int[10][]; 
    test[0] = new int[100]; 
    test[1] = new int[500]; 
} 




Syntax error on token ";", { expected after this token (for the first line) 
Syntax error on token(s), misplaced construct(s) (for the second line) 

Я использую это, чтобы решить проблему 28 на Project Euler.

+0

компилирует нормально с моим затмением. Не хватает ли здесь кода? – sanbhat

+0

Проблема, скорее всего, в коде перед этими строками. Можете ли вы показать нам, как вы объявили свой класс, в котором должны находиться эти строки? –

+0

Вы завернули это в класс и метод? – christopher

ответ

1

Я предполагаю, что вы разместили свой код непосредственно в классе. Вы должны поместить его внутри метода класса, например:

public class Snippet { 
    public static void main(String[] args) { 
     int[][] test = new int[10][]; 
     test[0] = new int[100]; 
     test[1] = new int[500]; 
    } 
} 

Или вы могли бы использовать статический инициализатор:

public class Snippet { 
    static int[][] test = new int[10][]; 
    static { 
     test[0] = new int[100]; 
     test[1] = new int[500]; 
    } 
} 
+0

Ха, я не такая весенняя курица. Я просто удалял остальную часть кода для краткости. Спасибо за ваш ответ и тщательность. – arete

+0

@arete в вашем вопросе у вас есть утверждения непосредственно в классе, которое запрещено. Вам нужно переместить теги [0], test [1] в методы, конструкторы или инициализаторы – Jyro117

+0

Так почему же это необходимо? – arete

0

Если он говорит: '{' ожидается, ваша ошибка находится в строках до этого.

0

попробуйте эти объявления .. Я не знаю, получил ли ур точку.

int[][] test = new int[][]{ 
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, 
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, 
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } 
}; 
//change zeroes with your values 

или

int[][] test= new int[3][10];