Учебники

12) Массивы Java

Что такое массив?

Массив — это очень распространенный тип структуры данных, в котором все элементы должны быть одного типа данных. После определения размер массива фиксирован и не может увеличиваться, чтобы вместить больше элементов. Первый элемент массива начинается с нулевого индекса.

Проще говоря, это программная конструкция, которая помогает заменить это

x0=0;
x1=1;
x2=2;
x3=3;
x4=4;
x5=5;

с этим …

x[0]=0;
x[1]=1;
x[2]=2;
x[3]=3;
x[4]=4;
x[5]=5;

В этом уроке вы узнаете

Это помогает в том, что переменная может ссылаться на индекс (число в скобках []) для легкого зацикливания.

for(count=0; count<5; count++) {
     System.out.println(x[count]);
   }

Переменные массива

Использование массива в вашей программе — это трехэтапный процесс

1) Объявление вашего массива

2) Создание вашего массива 3) Инициализация вашего массива

1) Объявление вашего массива

Синтаксис

<elementType>[] <arrayName>;

или

 <elementType> <arrayName>[];

Пример:

int intArray[];
 // Defines that intArray is an ARRAY variable which will store integer values
int []intArray;

2) Построение массива

 arrayname = new dataType[]

Пример:

intArray = new int[10]; // Defines that intArray will store 10 integer values

Декларация и строительство в сочетании

int intArray[] = new int[10];

3) Инициализировать массив

intArray[0]=1; // Assigns an integer value 1 to the first element 0 of the array

intArray[1]=2; // Assigns an integer value 2 to the second element 1 of the array

Объявление и инициализация массива

[]  = {};

Пример:

 int intArray[] = {1, 2, 3, 4};
// Initilializes an integer array of length 4 where the first element is 1 , second element is 2 and so on.

Первая программа Array

Шаг 1) Скопируйте следующий код в редактор.

class ArrayDemo{
     public static void main(String args[]){
        int array[] = new int[7];
        for (int count=0;count<7;count++){
           array[count]=count+1;
       }
       for (int count=0;count<7;count++){
           System.out.println("array["+count+"] = "+array[count]);
       }
      //System.out.println("Length of Array  =  "+array.length);
      // array[8] =10;
      }
}

Шаг 2) Сохраните, скомпилируйте и запустите код. Соблюдайте вывод

Вывод:

array[0] = 1
array[1] = 2
array[2] = 3
array[3] = 4
array[4] = 5
array[5] = 6
array[6] = 7

Шаг 3) Если x является ссылкой на массив, x.length даст вам длину массива.

Раскомментируйте строку № 10. Сохраните, скомпилируйте и запустите код.

Length of Array  =  7

Шаг 4) В отличие от C, Java проверяет границу массива при доступе к элементу в нем. Java не позволит программисту выйти за границы.

Раскомментируйте строку № 11. Сохраните, скомпилируйте и запустите код.

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8
        at ArrayDemo.main(ArrayDemo.java:11)
Command exited with non-zero status 1

Шаг 5) Исключение ArrayIndexOutOfBoundsException. В случае C, тот же код показал бы некоторое значение мусора.

Java Array: передать по ссылке

Массивы передаются в функции по ссылке или как указатель на оригинал. Это означает, что все, что вы делаете с массивом внутри функции, влияет на оригинал.

Пример: для понимания массива передаются по ссылке

Шаг 1) Скопируйте следующий код в редактор

class ArrayDemo {
   public static void passByReference(String a[]){
     a[0] = "Changed";
   }
 
   public static void main(String args[]){
      String []b={"Apple","Mango","Orange"};
      System.out.println("Before Function Call    "+b[0]);
      ArrayDemo.passByReference(b);
      System.out.println("After Function Call    "+b[0]);
   }
}

Шаг 2) Сохраните, скомпилируйте и запустите код. Соблюдайте вывод

Вывод:

Before Function Call    Apple
After Function Call    Changed

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

Многомерные массивы на самом деле являются массивами массивов.

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

Ex: int twoD[ ][ ] = new int[4][5] ;

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

Вы можете выделить остальные измерения отдельно.

В Java длина массива каждого массива в многомерном массиве находится под вашим контролем.

пример

public class Guru99 {
public static void main(String[] args) {

// Create 2-dimensional array.
  int[][] twoD = new int[4][4];

  // Assign three elements in it.
  twoD[0][0] = 1;
  twoD[1][1] = 2;
  twoD[3][2] = 3;
  System.out.print(twoD[0][0] + " ");
}

}

Вывод:

1