Вопрос: Как объявить и инициализировать массив в Java?


Как объявить и инициализировать массив в Java?


1590


источник


Ответы:


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

Для примитивных типов:

int[] myIntArray = new int[3];
int[] myIntArray = {1,2,3};
int[] myIntArray = new int[]{1,2,3};

Для классов, например String, это то же самое:

String[] myStringArray = new String[3];
String[] myStringArray = {"a","b","c"};
String[] myStringArray = new String[]{"a","b","c"};

Третий способ инициализации полезен, когда вы сначала объявляете массив, а затем инициализируете его. Приведение необходимо здесь.

String[] myStringArray;
myStringArray = new String[]{"a","b","c"};

2154



Существует два типа массива.

Одномерный массив

Синтаксис значений по умолчанию:

int[] num = new int[5];

Или (менее предпочтительно)

int num[] = new int[5];

Синтаксис с указанными значениями (инициализация переменных / полей):

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

Или (менее предпочтительно)

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

Примечание. Для удобства int [] num предпочтительнее, потому что это ясно говорит о том, что вы говорите здесь о массиве. Иначе никакой разницы. Не за что.

Многомерный массив

декларация

int[][] num = new int[5][2];

Или

int num[][] = new int[5][2];

Или

int[] num[] = new int[5][2];

инициализация

 num[0][0]=1;
 num[0][1]=2;
 num[1][0]=1;
 num[1][1]=2;
 num[2][0]=1;
 num[2][1]=2;
 num[3][0]=1;
 num[3][1]=2;
 num[4][0]=1;
 num[4][1]=2;

Или

 int[][] num={ {1,2}, {1,2}, {1,2}, {1,2}, {1,2} };

Ragged Array (или непрямоугольный массив)

 int[][] num = new int[5][];
 num[0] = new int[1];
 num[1] = new int[5];
 num[2] = new int[2];
 num[3] = new int[3];

Итак, здесь мы явно определяем столбцы.
Другой путь:

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

Для доступа:

for (int i=0; i<(num.length); i++ ) {
    for (int j=0;j<num[i].length;j++)
        System.out.println(num[i][j]);
}

В качестве альтернативы:

for (int[] a : num) {
  for (int i : a) {
    System.out.println(i);
  }
}

Рваные массивы - многомерные массивы.
Для объяснения см. Подробные сведения о многомерных массивах в официальные учебные пособия по java


218



Type[] variableName = new Type[capacity];

Type[] variableName = {comma-delimited values};



Type variableName[] = new Type[capacity]; 

Type variableName[] = {comma-delimited values};

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


115



Существуют различные способы объявления массива в Java:

float floatArray[]; // Initialize later
int[] integerArray = new int[10];
String[] array = new String[] {"a", "b"};

Вы можете найти дополнительную информацию в Учебник Sun сайта и JavaDoc ,


32



Ниже показано объявление массива, но массив не инициализирован:

 int[] myIntArray = new int[3];

Ниже показано объявление, а также инициализация массива:

int[] myIntArray = {1,2,3};

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

int[] myIntArray = new int[]{1,2,3};

Но этот третий показывает свойство анонимного создания массива-объекта, которое указывается ссылочной переменной «myIntArray», поэтому, если мы пишем только «new int [] {1,2,3};» тогда как можно создать анонимный массив-объект.

Если мы просто напишем:

int[] myIntArray;

это не объявление массива, но следующий оператор делает следующее заявление завершенным:

myIntArray=new int[3];

26



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

Type[] name = new Type[5];

Type[]это тип из переменная называемое имя («имя» называется идентификатор ). Литеральный «Тип» - это базовый тип, а скобки означают, что это тип массива этой базы. Типы массивов в свою очередь являются собственными, что позволяет создавать многомерные массивы, такие как Type[][](тип массива Type []). Ключевое слово newговорит, чтобы выделить память для нового массива. Число между скобкой говорит о том, насколько большой будет новый массив и сколько памяти будет выделено. Например, если Java знает, что базовый тип Typeзанимает 32 байта, и вам нужен массив размером 5, ему необходимо внутренне выделить 32 * 5 = 160 байт.

Вы также можете создавать массивы с уже существующими значениями, такими как

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

который не только создает пустое пространство, но и заполняет его этими значениями. Java может сказать, что примитивы являются целыми числами и что их 5, поэтому размер массива можно определить неявно.


25



С другой стороны,

// Either method works
String arrayName[] = new String[10];
String[] arrayName = new String[10];

Это объявляет массив, называемый arrayNameразмера 10 (у вас есть элементы с 0 по 9 для использования).


22



Also, in case you want something more dynamic there is the List interface. This will not perform as well, but is more flexible:

List<String> listOfString = new ArrayList<String>();

listOfString.add("foo");
listOfString.add("bar");

String value = listOfString.get(0);
assertEquals( value, "foo" );

22



There are two main ways to make an array:

This one, for an empty array:

int[] array = new int[n]; // "n" being the number of spaces to allocate in the array

And this one, for an initialized array:

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

You can also make multidimensional arrays, like this:

int[][] array2d = new int[x][y]; // "x" and "y" specify the dimensions
int[][] array2d = { {1,2,3 ...}, {4,5,6 ...} ...};

12