Вопрос-ответ

How do I declare and initialize an array in Java?

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

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

Переведено автоматически
Ответ 1

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

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

int[] myIntArray = new int[3]; // each element of the array is initialised to 0
int[] myIntArray = {1, 2, 3};
int[] myIntArray = new int[]{1, 2, 3};

// Since Java 8. Doc of IntStream: https://docs.oracle.com/javase/8/docs/api/java/util/stream/IntStream.html

int [] myIntArray = IntStream.range(0, 100).toArray(); // From 0 to 99
int [] myIntArray = IntStream.rangeClosed(0, 100).toArray(); // From 0 to 100
int [] myIntArray = IntStream.of(12,25,36,85,28,96,47).toArray(); // The order is preserved.
int [] myIntArray = IntStream.of(12,25,36,85,28,96,47).sorted().toArray(); // Sort

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

String[] myStringArray = new String[3]; // each element is initialised to null
String[] myStringArray = {"a", "b", "c"};
String[] myStringArray = new String[]{"a", "b", "c"};

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

String[] myStringArray;
myStringArray = new String[]{"a", "b", "c"};
Ответ 2

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

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

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

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, потому что оно ясно указывает, что вы говорите здесь о array . В остальном никакой разницы. Вовсе нет.

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

Объявление

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} };

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

 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

Ответ 3
Type[] variableName = new Type[capacity];

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



Type variableName[] = new Type[capacity];

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

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

Ответ 4

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

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

Вы можете найти дополнительную информацию на сайте Sun tutorial и в JavaDoc.

java arrays