2013-11-18 3 views
1

Почему мы не можем использовать массив intializer после объявления переменной.Инициализация массива после объявления

Например:

int arr[]; 
arr = {1,2,3,4}; 

Но

int arr[] = {1,2,3,4}; 

правильно. Есть ли способ использовать инициализацию массива после объявления переменной.

+0

@ sᴜʀᴇsʜᴀᴛᴛᴀ - Это не то же самое, как вопрос вы связаны между собой. – SudoRahul

ответ

7

Так вы можете.

int arr[]; 

arr = new int[]{1, 2, 3, 4}; 
+1

Это создаст новый массив в памяти нет? –

+0

Это создаст только один массив в памяти. –

+0

Я думал, что первая строка создаст массив в памяти, но окажется, что он только создает ссылку на массив в стеке, более подробно: http://stackoverflow.com/questions/13511702/int-array-initialization –

1

Поскольку массив не работает так, как в java.

int arr[4]; 
arr[0] = 1; 
arr[1] = 2; 
arr[2] = 3; 
arr[3] = 4; 
0

Check this

пример: -

int data[] = new int[] {10,20,30,40,50,60,71,80,90,91 }; 

или

int data[]; 

data=new int[] {10,20,30,40,50,60,71,80,90,91 }; 
0

Есть три шага к созданию массива, объявив ее, выделив его и его инициализации.

Декларирование Массивы Как и другие переменные в Java, массив должен иметь определенный тип, как байт, Int, String или двойной. В массиве могут храниться только переменные соответствующего типа. Например, вы не можете иметь массив, который будет хранить как ints, так и Strings.

Как и все другие переменные в Java, массив должен быть объявлен. Когда вы объявляете переменную массива, вы суффикс типа с [], чтобы указать, что эта переменная является массивом. Вот несколько примеров:

int [] k; float [] yt; Строковые [] имена;

Другими словами, вы объявляете массив, как если бы вы объявляли какую-либо другую переменную, за исключением того, что вы добавляете скобки в конец типа переменной.

Выделение массивов Объявление массива просто говорит, что это такое. Он не создает массив. Чтобы создать массив (или любой другой объект), используйте новый оператор. Когда мы создаем массив, нам нужно сообщить компилятору, сколько элементов будет храниться в нем. Вот как мы создали бы указанные выше переменные:

k = new int [3]; yt = новый поплавок [7]; names = new String [50];

Номера в скобках определяют размерность массива; то есть сколько слотов оно должно удерживать значения. С размерами выше k может содержать три ints, yt может содержать семь поплавков, а имена могут содержать пятьдесят строк. Поэтому этот шаг иногда называют размерным массивом. Чаще всего это называется выделение массива, поскольку этот шаг фактически выделяет память в ОЗУ, которую требует массив.

Это также наш первый взгляд на нового оператора.new - это зарезервированное слово в java, которое используется для выделения не только массива, но и всех видов объектов. Массивы Java - это полноценные объекты со всем, что это подразумевает. На данный момент главное состоит в том, что мы должны выделить их новыми.

Инициализация массивов Отдельные элементы массива ссылаются по имени массива и целым числом, которое представляет свои позиции в массиве. Числа, которые мы используем для их идентификации, называются индексами или индексами в массиве. Подстрочные индексы представляют собой последовательные целые числа, начинающиеся с 0. Таким образом, массив k выше имеет элементы k [0], k [1] и k [2]. Поскольку мы начали отсчет в ноль, нет k [3], и попытка доступа к нему создаст исключение ArrayIndexOutOfBoundsException.

Вы можете использовать элементы массива везде, где бы вы не использовали такую ​​же типизированную переменную, которая не была частью массива.

Вот как мы бы хранить значения в массивах мы работали с:

к [0] = 2; k [1] = 5; k [2] = -2; yt [6] = 7.5f; имена [4] = "Fred";

Мы можем даже объявить, выделить и инициализировать массив в то же время обеспечивая список начальных значений внутри скобок следующим образом:

INT [] K = {1, 2, 3}; float [] yt = {0.0f, 1.2f, 3.4f, -9.87f, 65.4f, 0.0f, 567.9f};

см http://www.cafeaulait.org/javatutorial.html#xtocid499429

Смежные вопросы