Как мне объявить и инициализировать массив в Java? - PullRequest
1866 голосов
/ 29 июля 2009

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

Ответы [ 23 ]

0 голосов
/ 10 июня 2019

Объявить массив: int[] arr;

Initialize Array: int[] arr = new int[10]; 10 представляет количество элементов, разрешенных в массиве

Объявить многомерный массив: int[][] arr;

Инициализация многомерного массива: int[][] arr = new int[10][17]; 10 строк, 17 столбцов и 170 элементов, поскольку 10 раз 17 равно 170.

Инициализация массива означает определение его размера.

0 голосов
/ 28 марта 2019

Много ответов здесь. Добавление нескольких хитрых способов создания массивов (с точки зрения экзамена это полезно знать)

  1. объявить и определить массив

    int intArray[] = new int[3];
    

это создаст массив длины 3. Поскольку он содержит примитивный тип int, все значения по умолчанию равны 0.Например,

    intArray[2]; // will return 0
  1. Использование квадратных скобок [] перед именем переменной

    int[] intArray = new int[3];
    intArray[0] = 1;  // array content now {1,0,0}
    
  2. Инициализация и предоставление данных в массив

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

    на этот раз не нужно указывать размер в скобках. Даже простой вариант это

    int[] intArray = {1,2,3,4};
    
  3. Массив длины 0

    int[] intArray = new int[0];
    int length = intArray.length; // will return length 0
    

    Аналогично для многомерных массивов

    int intArray[][] = new int[2][3]; 
    // This will create an array of length 2 and 
    //each element contains another array of length 3.
    // { {0,0,0},{0,0,0} } 
    int lenght1 = intArray.length; // will return 2
    int length2 = intArray[0].length; // will return 3
    

    Использование скобок перед переменной

    int[][] intArray = new int[2][3];
    

    это абсолютно нормально, если вы поставите один кронштейн для коробки в конце

    int[] intArray [] = new int[2][4];
    int[] intArray[][] = new int[2][3][4]
    

Некоторые примеры

    int [] intArray [] = new int[][] {{1,2,3},{4,5,6}};
    int [] intArray1 [] = new int[][] {new int[] {1,2,3}, new int [] {4,5,6}};
    int [] intArray2 [] = new int[][] {new int[] {1,2,3},{4,5,6}} 
    // All the 3 arrays assignments are valid
    //Array looks like {{1,2,3},{4,5,6}}

Не обязательно, чтобы каждый внутренний элемент был одинакового размера.

    int [][] intArray = new int[2][];
    intArray[0] = {1,2,3};
    intArray[1] = {4,5};
    //array looks like {{1,2,3},{4,5}}

    int[][] intArray = new int[][2] ; // this won't compile keep this in mind.

Вы должны убедиться, что используете вышеприведенный синтаксис, в прямом направлении вы должны указать значения в скобках. Иначе он не будет компилироваться. Некоторые примеры:

    int [][][] intArray = new int[1][][];
    int [][][] intArray = new int[1][2][];
    int [][][] intArray = new int[1][2][3]; 

Другая важная особенность - ковариант

    Number[] numArray = {1,2,3,4};   // java.lang.Number
    numArray[0] = new Float(1.5f);   // java.lang.Float
    numArray[1] = new Integer(1);    // java.lang.Integer
   //You can store a subclass object in an array that is declared
   // to be of the type of its superclass. 
   // Here Number is the superclass for both Float and Integer.

   Number num[] = new Float[5]; // this is also valid

IMP: Для ссылочных типов значение по умолчанию, сохраненное в массиве, равно нулю.

0 голосов
/ 19 ноября 2015
int[] SingleDimensionalArray = new int[2]

int[][] MultiDimensionalArray = new int[3][4]
...