Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ΠœΠ°ΡΡΠΈΠ²Ρ‹. Π§Π°ΡΡ‚ΡŒ 3 – ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы.

Π’ Java ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой массивы массивов.

ΠŸΡ€ΠΈ объявлСнии ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива для указания ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ индСкса ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобок. НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива twoD.

int

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

Π­Ρ‚ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ распрСдСляСт ΠΏΠ°ΠΌΡΡ‚ΡŒ для массива Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ 4Γ—5 ΠΈ присваиваСт ссылку Π½Π°Β  Π½Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ twoD. Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ эта ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΊΠ°ΠΊ массив массивов Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ‚ΠΈΠΏΠ° int. Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния логичСской ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ этот массив Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π­Ρ‚ΠΎ ΠΌΡ‹ рассмотрСли Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива. ЀизичСская ΠΆΠ΅, ΠΈΠ»ΠΈ Ρ‚ΠΎ, ΠΊΠ°ΠΊ распрСдСляСтся ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΠΎΠ΄ массив нСсколько другая. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ массивами, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ нСсколько Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ.

Допустим, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ умноТСния Π² Π²ΠΈΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива:

int

[][] multiplicationTable;

КаТдая ΠΏΠ°Ρ€Π° ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобок прСдставляСт ΠΎΠ΄Π½ΠΎ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅, поэтому Π΄Π°Π½Π½Ρ‹ΠΉ массив являСтся Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΌ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠΌΡƒ элСмСнту int Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива, Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄Π²Π° значСния индСкса, ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ измСрСния. Если Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ массив Π±Ρ‹Π» Π·Π°Π΄Π°Π½ ΠΊΠ°ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π° умноТСния, Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ int, находящССся Π² любом элСмСнтС, Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ этих индСксов. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ products[2][4]Β  Ρ€Π°Π²Π½ΠΎ 8, Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ products[3][7]Β  Π±ΡƒΠ΄Π΅Ρ‚ 21.

Новый ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив создаСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова new с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΎΠ±ΠΎΠΈΡ… ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ массива. НапримСр:

int

[][] multiplicationTable = new int[10][10];

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… языках Ρ‚Π°ΠΊΠΎΠΉ массив создаСтся Π² Π²ΠΈΠ΄Π΅ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΈΠ· 100 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ int. Java поступаСт ΠΈΠ½Π°Ρ‡Π΅. Π­Ρ‚Π° строка ΠΊΠΎΠ΄Π° выполняСт Ρ‚Ρ€ΠΈ дСйствия:

  • ΠžΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ с ΠΈΠΌΠ΅Π½Π΅ΠΌ multiplicationTable, которая содСрТит ссылку Π½Π° массив ссылок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° массивы int.
  • Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ массив ΠΈΠ· 10 элСмСнтов (ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ индСкс), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ссылки Π½Π° 10 ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов int. Π’ΠΎΡ‚ ΠΎΡ‚ сюда собствСнно ΠΈ понятиС – массив массивов.
    На этой стадии создания массив ссылок заполняСтся значСниями ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ значСниями null.
  • Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ Π΅Ρ‰Π΅ 10 массивов, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ являСтся массивом ΠΈΠ· 10 элСмСнтов int. ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ‚ ссылки Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих 10 Π½ΠΎΠ²Ρ‹Ρ… массивов элСмСнтам массива, созданного Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΌ шагС. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт int ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· этих 10 Π½ΠΎΠ²Ρ‹Ρ… массивов ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0.

Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½Π½ΡƒΡŽ Π²Ρ‹ΡˆΠ΅ строку ΠΊΠΎΠ΄Π°, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

int

[][] multiplicationTable = new int[10][]; // ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ индСкс содСрТит ссылки Π½Π° массивы int
Β Β  for (int i = 0; i < 10; i++)
       multiplicationTable[i] = new int[10]; // создаСм 10 массивов int

ГрафичСски это ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ:

ΠžΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· массивов с элСмСнтами int, Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π² памяти Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹ΠΌ куском, Π½ΠΎ Π³Π΄Π΅ ΠΈ ΠΊΠ°ΠΊ располоТСны ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… это опрСдСляСт Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина java. Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· этого Π΅ΡΡ‚ΡŒ рСкомСндация, Ρ‡Ρ‚ΠΎ Π½Π°Ρ€ΡƒΠΆΠ½Ρ‹Π΅ (Π»Π΅Π²Ρ‹Π΅) размСрности массива Π»ΡƒΡ‡ΡˆΠ΅ Π΄Π΅Π»Π°Ρ‚ΡŒ мСньшС, Π° самыС большС размСрности Π²Π½ΡƒΡ‚Ρ€ΠΈ (ΠΏΡ€Π°Π²Π΅Π΅), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это, Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ памяти, Π° Π²ΠΎ Π²Ρ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС памяти для размСщСния массива. Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ Π΄Π²Π° опрСдСлСния Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов:

int

[][] a = new int[10][1000];
int[][] b = new int[1000][10];

Π’ случаС массива a, количСство ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΡ‹Ρ… Π² памяти ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ρ€Π°Π²Π½ΠΎ 11, Π° Π² случаС массива b – 1001. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ обслуТиваниС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² памяти Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚ свои Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина считаСт ссылки для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Ρ…Ρ€Π°Π½ΠΈΡ‚ Π΅Π³ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ Ρ‚.Π΄. ΠΈ Ρ‚.ΠΏ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ массив b ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π² памяти Π² ΠΏΠΎΠ»Ρ‚ΠΎΡ€Π°, Π° Ρ‚ΠΎ ΠΈ Π² Π΄Π²Π° Ρ€Π°Π·Π° большС мСста Ρ‡Π΅ΠΌ массив a.

Π§Ρ‚ΠΎΠ±Ρ‹ всС Π΅Ρ‰Π΅ стало понятнСй, Π»ΡƒΡ‡ΡˆΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒΡΡ

Данная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄:

По сущСству шаги 1 ΠΈ 2 Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² 9 строкС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ 12-15 лишь выводят значСния элСмСнтов ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ индСкса массива, Π³Π΄Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° массивы Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ int. Но Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ‚Π°ΠΌ Π΅Ρ‰Π΅ значСния null, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΠΌ Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π»ΠΈ присвоСны ссылки Π½Π° массивы со значСниями int.

ПослС создания массивов int (строки 18-21), Π½Π° Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌ шагС ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ индСксС, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² массивС содСрТащСм ссылки Π½Π° массивы int ΡƒΠΆΠ΅ находятся ссылки Π½Π° эти массивы.

И Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ссли ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΏΠΎ ΠΎΠ±ΠΎΠΈΠΌ индСксам массива multiplicationTable, Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Ρ‡Ρ‚ΠΎ массивы int Π±Ρ‹Π»ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ значСниями ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ нулями.

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово new автоматичСски выполняСт ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ элСмСнтов массива значСниями ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Ну ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ просто присвоили значСния ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту массива, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ соотвСтствуСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ умноТСния индСксов Π΄Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΈΡ… Π½Π° консоль. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈ Π±ΠΎΠ»Π΅Π΅ красиво ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π² Π²Ρ‹Π²ΠΎΠ΄, Π½ΠΎ это ΠΌΡ‹ ΠΏΠΎΠΊΠ° Π΅Ρ‰Π΅ Π½Π΅ ΠΈΠ·ΡƒΡ‡Π°Π»ΠΈ, поэтому вСрнСмся ΠΊ этому вопросу Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ массивами Π² Java ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ индСксы ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов содСрТат Ρ‚ΠΎΠ»ΡŒΠΊΠΎ массивы ссылок, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСдний (самый ΠΏΡ€Π°Π²Ρ‹ΠΉ) индСкс содСрТит нСпосрСдствСнно элСмСнт Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° объявлСнного для массива.

Π’ΠΎ Π΅ΡΡ‚ΡŒ Π² Java ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы. НапримСр:

int

[][][] dim3D;

И Ρ‚ΡƒΡ‚ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ индСкс Π΄Π°Π½Π½ΠΎΠ³ΠΎ массива, содСрТит массив ссылок, Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ индСкс Π΄Π°Π½Π½ΠΎΠ³ΠΎ массива, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Ρ‚ΠΎΠΆΠ΅ содСрТит массив ссылок Π½Π° массивы Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ int.

Π’ΠΎ Π΅ΡΡ‚ΡŒ Ссли Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΌΡ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ вывСсти Π½Π° консоль Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ int[1][1], Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ адрСс ссылки, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚ΠΎ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ Π½Π° шагС 3 Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. И Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ индСксу int[1][1][1] ΠΌΡ‹ смоТСм ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ элСмСнта массива Ρ‚ΠΈΠΏΠ° int.

Если Ρ‚Π°ΠΊ ΠΆΠ΅ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ компиляции:

int

[][] multiplicationTable = new int[10][];
multiplicationTable[0] = 10; // ошибка компиляции

НС смотря Π½Π° Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ 10 являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ int, Π΄Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ скомпилирован ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π°Π½Π° ошибка: cannot convert from int to int[]. Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ оТидаСтся, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ элСмСнт массива Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π° Π½Π΅ сам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Π‘Ρ‚Ρ€ΠΎΠΊΠ° 12 Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΈ дСмонстрируСт этот ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π±Ρ‹Π»ΠΎ ошибки.

Π’ Ρ‚ΠΎΠΆΠ΅ врСмя Π½ΠΈΠΆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π΅ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ошибки компиляции, Π½ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π²ΠΎ врСмя исполнСния: NullPointerException.

int

[][] multiplicationTable = new int[10][];
multiplicationTable[0][0] = 10; // ошибка Π²ΠΎ врСмя исполнСния

Π­Ρ‚ΠΎ происходит ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π½Π΅ Π±Ρ‹Π» создан ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС массив int-ΠΎΠ². Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΡ‹ создали массив хранящий ссылки, Π½Π° массивы int-ΠΎΠ², Π½ΠΎ сами эти массивы ΠΌΡ‹ Π΅Ρ‰Π΅ Π½Π΅ создали, поэтому ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π΄Π°Π½Π½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ. Π‘Ρ‚Ρ€ΠΎΠΊΠ° 19 ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (массивов), Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ссылаСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ индСкс. ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово new, Ρ‚Π°ΠΊ ΠΆΠ΅ слуТит ΠΈ для создания ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… массивов.

Π’ послСднСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΡ‹ создали массив ссылок, Π½ΠΎ Π½Π΅ создали массив int-ΠΎΠ², поэтому ΠΊ Π½Π΅ΠΌΡƒ ΠΈ Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ:

int

[][] multiplicationTable = new int[10][];
multiplicationTable[0] = new int [10];
multiplicationTable[0][0] = 10; // Π½Π΅Ρ‚ ошибки

ВсС ΠΏΡ€Π°Π²ΠΈΠ»Π° создания массивов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ рассматривали Ρ€Π°Π½Π΅Π΅, справСдливы ΠΈ для ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ всС стадии: объявлСниС, созданиС ΠΈ инициализация.

Как ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Π² Java ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ массивы любой размСрности:

float

[][][] globalTemperatureData = new float[360][180][100];

Если Π²Ρ‹ создаСтС ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы, Π²Π°ΠΌ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ всС измСрСния массива – Π²Π°ΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅Π΅ слСва ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ измСрСния. НапримСр, Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹ Ρ‚Π°ΠΊΠΈΠ΅ строки:

float

[][][] globalTemperatureData = new float[360][][];
float[][][] globalTemperatureData = new float[360][180][];

Но Ρ‚Π°ΠΊΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹:

float

[][][] globalTemperatureData = new float[360][][100]; // Ошибка!
float[][][] globalTemperatureData = new float[][180][100]; // Ошибка!

Π•Ρ‰Π΅ Ρ€Π°Π· напомню, Ρ‡Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ индСксы (измСрСния) массивов содСрТат Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ссылки, ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ объявлСнного для массива Ρ‚ΠΈΠΏΠ°, ΠΈΡ… содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅Π΅ Π»Π΅Π²ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ (индСкс).

Подобно ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌ массивам, ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ массива-Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°. НуТно просто Π²Π»ΠΎΠΆΠΈΡ‚ΡŒ массивы Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ массивы, примСняя мноТСство Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π½ΠΈΠΆΠ΅ создаСт массив products[5][5]:

int

[][] products = { { 0, 0, 0, 0, 0 },
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  { 0, 1, 2, 3, 4 },
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  { 0, 2, 4, 6, 8 },
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  { 0, 3, 6, 9, 12 },
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  { 0, 4, 8, 12, 16 } };

Напомню, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ синтаксис ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ объявлСнии массива ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ использовании Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠ³ΠΎ массива, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ массива Π±Π΅Π· ΠΈΠΌΠ΅Π½ΠΈ:

boolean

response = bilingualQuestion( question, new String[][] {{ «Yes», «No» },{ «Oui», «Non» } } );

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² Java ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ массивы массивов,Β  Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹Π΅ массвы. НапримСр:

int

[][] triangle = {{1, 2, 3, 4, 5},
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  {6, 7, 8, 9},
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  {10, 11, 12},
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  {13, 14},
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  {15}};

ΠŸΡ€ΠΈΠ²Π΅Π΄Ρƒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ нСбольшой ΠΌΠ°Π³ΠΈΠΈ с массивами Π² Java, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ³Π»ΡƒΠ±ΠΈΡ‚ΡŒ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π΅ΠΌΡ‹.

Данная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄:

Π’ строкС 9 ΠΌΡ‹ создаСм ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив. Π’ 11 строкС создаСм Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив. Π’ 12 строкС происходит магия. Если Π²Ρ‹ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‡ΠΈΡ‚Π°Π»ΠΈ, всС Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ написано Π΄ΠΎ сих ΠΏΠΎΡ€ Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ, ΠΊΠ°ΠΊ я ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ», ΠΏΠ΅Ρ€Π²Ρ‹Π΅ индСксы ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов содСрТат ссылки Π½Π° массивы, Ρ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΌΡ‹ Ρ‚ΡƒΠ΄Π° присвоили ссылку Π½Π° ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив oneD.

Если Π»ΠΈ ΠΆΠ΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ понятно, Ρ‚ΠΎ ΠΈΠ·ΡƒΡ‡Π°ΠΉΡ‚Π΅ Π²Ρ‹Π²ΠΎΠ΄ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ссли Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ понятно ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΊ ΡΡ‚Π°Ρ‚ΡŒΠ΅.

А ΠΏΠΎΠΊΠ° добавлю Π΅Ρ‰Π΅ Π½Π΅ΠΌΠ½ΠΎΠΆΠΊΠΎ ΠΌΠ°Π³ΠΈΠΈ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅

Π’ΡƒΡ‚ я Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π² строках 20 ΠΈ 21 ΠΏΠΎΡΡΠ½ΡΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄, Ρ‡Ρ‚ΠΎ ΠΆΠ΅ ΡΡ‚Π°Π»ΠΎΡΡŒ с массивами ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ выглядят послС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² строкС 17.

ΠšΡ€ΠΎΠΌΠ΅ этого Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ строки создания массива int-ΠΎΠ², для Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ индСкса массива twoD, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ для индСкса 1, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ заполнСния Π΅Π³ΠΎ значСниями. Π­Ρ‚ΠΎ строки 23-25.

Π”Π°Π»Π΅Π΅, строка 26, просто Π²Ρ‹Π²ΠΎΠ΄ массива twoD Π½Π° консоль.

Π’ 27 строкС нСбольшая магия, ΠΌΡ‹ присвоили ссылку Π½Π° массив int-ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ создали Π² массивС twoD, массиву oneD.

Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π²Π΅Π»ΠΈ содСрТимоС массива oneD Π½Π° консоль. И ΡƒΠΆΠ΅ послС этого адрСса ссылок Π½Π° массивы.

ЦСль этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с массивами, ΠΈ самоС Π³Π»Π°Π²Π½ΠΎΠ΅, ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС массивом, ΠΈ ссылкой Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ наша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄:

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΊΠΎΠ»Π΄ΡƒΠ΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠΆΠΊΠΎ с Π½Π΅ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ массивами, Π΄Π°Π±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ‚Π΅ΠΌΡƒ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов Π² Java Π΅Ρ‰Π΅ Π³Π»ΡƒΠ±ΠΆΠ΅.

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΈΠ»ΠΈ ступСнчатым массивом. На самом Π΄Π΅Π»Π΅ массивы int-ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹.

Π’ 16 строкС ΠΌΡ‹ воспользовались стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ (Arrays.deepToString) SDK для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов Π½Π° консоль, Π½ΠΎ ΠΊΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Π²Ρ‹Π²ΠΎΠ΄Π°, Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ любой ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Π² строку, раздСляя Π΅Π³ΠΎ размСрности ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ скобкам, Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ наглядно.

Π—Π°Ρ‚Π΅ΠΌ Π² Ρ†ΠΈΠΊΠ»Π΅ (строки 18-23) ΠΌΡ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ массив Π±ΠΎΠ»Π΅Π΅ наглядным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Β 

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‡ΡƒΡ‚ΡŒ интСрСснСй, Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ массив Π² Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ.

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΌΡ‹ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΈΠΌΠ΅Π΅ΠΌ Ρ‚Ρ€ΠΈ массива: ΠΎΠ΄ΠΈΠ½ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ ΠΈ Π΄Π²Π° Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Ρ…, Π½ΠΎ с Ρ€Π°Π·Π½Ρ‹ΠΌ количСством элСмСнтов Π² строках – 2 ΠΈ 3 соотвСтствСнно.

Как Π²ΠΈΠ΄Π½ΠΎ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ справа, спСрва ΠΌΡ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ всС Ρ‚Ρ€ΠΈ массива Π² ΠΈΡ… ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ состоянии.

Π’ строках 31 ΠΈ 32 ΠΌΡ‹ ΠΊΠΎΠ»Π΄ΡƒΠ΅ΠΌ с массивом three ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ нашСго ΡˆΠ°ΠΌΠ°Π½ΡΡ‚Π²Π° Π½Π° консоль.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, ΠΊΠ°ΠΊ-Π±Ρ‹, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ чСстный Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ массив.

Как-Π±Ρ‹, это ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ послСдниС Π΄Π²Π° индСкса ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ массивы two ΠΈ one.

А чСстный ΠΎΠ½ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ придСтся с Π½ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΡƒΠΆΠ΅ ΠΊΠ°ΠΊ с Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, послС ΠΌΠ°Π³ΠΈΠΈ ΠΌΡ‹ ΡƒΠΆΠ΅ Π½Π΅ смоТСм ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ индСксу three[2][2], ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π²ΠΎ врСмя исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ArrayIndexOutOfBoundsException. А ΠΊΠ°ΠΊ-Π±Ρ‹ ΠΎΠ½ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ работая с индСксами three[1] ΠΈ three[2] ΠΌΡ‹ Π½Π° самом Π΄Π΅Π»Π΅ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с массивами two ΠΈ one соотвСтствСнно.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° создаСт Ρ‚Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив размСрности 3Γ—4Γ—5. Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Π΅Π³ΠΎ индСксов ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ всС это Π΄Π΅Π»ΠΎ Π½Π° консоль.

Данная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄:

Π’ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠ΅ Ρƒ нас 3D

Β 

Ну ΠΈ Π² Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ поста ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ сортировки Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠΌ.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, это классика ΠΆΠ°Π½Ρ€Π°, сортировка ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠΌ, Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ я написал Π·Π°Π±Π°Π²Ρ‹ Ρ€Π°Π΄ΠΈ, Ρ‡Ρ‚ΠΎ-Π±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ вычислСний.

Данная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы Π·Π°Π΄Π°Π½Π½ΠΎΠΉ размСрности. Если Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ Ρ‚ΠΎ создаСтся массив 10Ρ…10. Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½ заполняСтся случайными числами, копируСтся Π² массив ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ отсортирован ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ, сортируСтся, выводится Π½Π° консоль, Π·Π°Ρ‚Π΅ΠΌ нСсортированный снова копируСтся для сортировки, сортируСтся Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ ΠΈ выводится Π½Π° консоль.

Данная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹:

Π’ΡƒΡ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ запусков Π±Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ количСством ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ пСрСстановок Π² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°Ρ… различаСтся ΠΎΡ‚ Π΄Π²ΡƒΡ… ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·.

ЕстСствСнно ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запускС Ρƒ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ числа Ρ…ΠΎΡ‚ΡŒ ΠΈ псСвдослучайныС, Π½ΠΎ всС ΠΆΠ΅ случайныС.

ΠžΠ±ΡŠΡΡΠ½ΡΡ‚ΡŒ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Π½Π½ΠΎ. ΠŸΠΎΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ сами.

Если Π½Π΅ получится ΠΈ Ссли сильно интСрСсно, ΠΏΠΈΡˆΠΈΡ‚Π΅ вопросы Π² коммСнтариях, Π΄Π°Π±Ρ‹ ΠΌΠ½Π΅ Π½Π΅ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ понапрасну врСмя Π½Π° объяснСния Ρ‚ΡƒΡ‚.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ постС Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивами ΠΈΠ· стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Java Array. ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² Java. Java для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Массив (Π°Π½Π³Π». array) прСдставляСт собой ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с большим количСством Π΄Π°Π½Π½Ρ‹Ρ…. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ссли Π²Π°ΠΌ Π² процСссС Ρ€Π°Π±ΠΎΡ‚Ρ‹ вашСго ΠΊΠΎΠ΄Π° Π³Π΄Π΅-Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, 100 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ для этого Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅ количСство ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π½Π΅Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ. Массив позволяСт Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ большоС количСство Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎΠ΄ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π½ΠΈΠΌ ΠΏΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ индСксу. ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ массивов являСтся ΠΊΡ€Π°Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΊΠ°ΠΌΠ½Π΅ΠΌ Π² ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ курса Java для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π’Π΅Π΄ΡŒ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ основой для ΠΌΠ½ΠΎΠ³ΠΈΡ… структур Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Java это, ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго, ООП, ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с массивами Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования java array ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ – ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Помимо ΠΏΡ€ΠΎΡ‡ΠΈΡ… прСимущСств, это избавляСт ΠΎΡ‚ Π½ΡƒΠΆΠ΄Ρ‹ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° очисткой памяти, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½Π° освобоТдаСтся автоматичСски.


Java: InputStream. ΠŸΠΎΡ‚ΠΎΠΊΠΈ Π²Π²ΠΎΠ΄Π°

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс для ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… Π² Java — InputStream. Π Π°Π·Π±Π΅Ρ€Π΅ΠΌ…

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ манипуляции ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ массивами

ΠžΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив прСдставляСтся собой классичСский Java array ΠΈ являСтся ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒΡŽ связанных ΠΎΠ±Ρ‰ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ элСмСнтов, ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… соотвСтствуСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ индСкс. Бпособ объявлСния массива ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½Π° рисункС Π½ΠΈΠΆΠ΅.

Π’Π½Π°Ρ‡Π°Π»Π΅ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Ρ‚ΠΈΠΏ Java array, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт Ρ‚ΠΈΠΏ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, хранящихся Π² Π½Π΅ΠΌ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ любой допустимый Π² Java Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…. Π”Π°Π»Π΅Π΅ ΠΈΠ΄ΡƒΡ‚ имя массива ΠΈ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки, ΡΠΎΠΎΠ±Ρ‰Π°ΡŽΡ‰ΠΈΠ΅ компилятору, Ρ‡Ρ‚ΠΎ данная пСрСмСнная являСтся массивом. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π²Π°ΠΆΠ½Ρ‹ΠΉ Ρ„Π°ΠΊΡ‚. ΠšΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ послС Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° массива, Ρ‚Π°ΠΊ ΠΈ послС ΠΈΠΌΠ΅Π½ΠΈ массива. ПослС Π·Π½Π°ΠΊΠ° равСнства указываСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ new, ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти ΠΏΠΎΠ΄ массив (Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² случаС с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ), Ρ‚ΠΈΠΏ элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² Π½Π΅ΠΌ (Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ совмСстим с Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹ΠΌ Ρ€Π°Π½Π΅Π΅), ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΈΡ… количСство, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках.


Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ: JavaScript join()

Π‘Ρ‚Ρ€ΠΎΠΊΠ° — ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов. Массив — ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ элСмСнтов. КаТдая ΠΈΠ· этих конструкций…

НумСрация элСмСнтов Π² Java array начинаСтся с 0. Π’Π°ΠΊ, индСкс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта Π² Π΄Π°Π½Π½ΠΎΠΌ массивС Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π΅Π½ 0, Π° ΡˆΠ΅ΡΡ‚ΠΎΠ³ΠΎ – 5. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ элСмСнту массива, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, пятому, достаточно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя массива ΠΈ индСкс элСмСнта Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках рядом с ΠΈΠΌΠ΅Π½Π΅ΠΌ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ элСмСнту, Ρ‚Π°ΠΊ ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ Π΅Π³ΠΎ. Однако слСдуСт Π±Ρ‹Ρ‚ΡŒ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ссли ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ индСкс, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π½Π΅ сущСствуСт элСмСнта, Ρ‚ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ошибка.

ΠœΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы Π² Java

ΠœΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ряды ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ…, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ элСмСнты Π΄Ρ€ΡƒΠ³ΠΈΡ… массивов. Π˜Π½Ρ‹ΠΌΠΈ словами, это массивы массивов. НаиболСС простыми срСди Π½ΠΈΡ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Π΅. На ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈ попытаСмся Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ с понятиСм. Для наглядности Π½Π° рисункС Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ синтаксис ΠΈ схСма, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π°Ρ структуру Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива.

Как Π²ΠΈΠ΄ΠΈΠΌ, синтаксис Π½Π΅ особо отличаСтся ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов. Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ структуру. Π’ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… скобках ΠΌΡ‹ Π²Ρ‹Π΄Π΅Π»ΠΈΠ»ΠΈ мСсто ΠΏΠΎΠ΄ 5 элСмСнтов. Π­Ρ‚ΠΈ элСмСнты ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½ΠΈΡ‡Π΅ΠΌ ΠΈΠ½Ρ‹ΠΌ ΠΊΠ°ΠΊ ссылками Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ массивы. ΠŸΡ€ΠΈ этом Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ числом Π²ΠΎ Π²Ρ‚ΠΎΡ€Ρ‹Ρ… скобках. По сути, Π°Π½Π°Π»ΠΎΠ³ΠΎΠΌ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΈΠΌΠΎ элСмСнтов, Π² памяти выдСляСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ мСсто, Π³Π΄Π΅ хранится Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ‹ массива (length). Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ€Π°Π±ΠΎΡ‚Π° с ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ массивами осущСствляСтся посрСдством Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ² for.


Java: ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°

Как Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Java. Каким ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ происходит ΠΈΡ… ΠΎΡ‚Π»ΠΎΠ² ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто…

НСрСгулярныС массивы

Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив являСтся массивом массивов. Π­Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠΆΠ΅ выяснили. Но ΠΌΠΎΠ³ΡƒΡ‚ Π»ΠΈ массивы, содСрТащиСся Π² Π½Π΅ΠΌ, ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π½ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ? ΠžΡ‚Π²Π΅Ρ‚ – Π΄Π°, ΠΌΠΎΠ³ΡƒΡ‚. Для этого Π² Java прСдусмотрСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ…Ρ€Π°Π½ΠΈΠ» Π±Ρ‹ Π² сСбС Ρ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массива Π΄Π»ΠΈΠ½ΠΎΠΉ 2, 3 ΠΈ 4 соотвСтствСнно. ΠžΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ ΠΎΠ½ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

intarr[][] = newint[3][];

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π»ΠΈ число Π²ΠΎ Π²Ρ‚ΠΎΡ€Ρ‹Ρ… скобках. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массивов Π² arr дСлаСтся Ρ‚Π°ΠΊ:

arr[0] = new int[2];

arr[1] = new int[3];

arr[2] = newint[4];

ΠžΠ±Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ элСмСнту ΠΏΠΎΠ΄ индСксом 0, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌΡƒ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ массив, ΠΌΡ‹ объявляСм Π΅Π³ΠΎ с Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ 2. Под элСмСнтом с индСксом 1 Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ массив Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ 3, ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. ВсС довольно просто.

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ синтаксис объявлСния java array

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массивы ΠΌΠΎΠΆΠ½ΠΎ ΠΈ нСпосрСдствСнно ΠΏΡ€ΠΈ ΠΈΡ… создании. Π­Ρ‚ΠΎ довольно просто.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° объявлСниС массивов jerseyNumber ΠΈ playerName.

Π’ случаС с Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ массивами Π΄Π°Π½Π½ΠΎΠ΅ объявлСниС выглядит Ρ‚Π°ΠΊ:

int[][] arr = {

{1, 2, 3},

{4, 5, 6},

{7, 8, 9}

}

Для этого вмСсто ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° new ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ ΠΈΠ΄Π΅Ρ‚ пСрСчислСниС всСх элСмСнтов. Java Π² этом случаС автоматичСски выдСляСт ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΠΎΠ΄ Π½ΠΈΡ… ΠΈ индСксируСт ΠΈΡ… ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ класс Arrays

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Π°ΠΊΠΈΠΌΠΈ сущностями, ΠΊΠ°ΠΊ массивы Π² Java, Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ java.util имССтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ класс Arrays, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт мноТСство статичСских ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‰ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Π½ΠΈΠΌΠΈ. ΠŸΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ основных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² прСдставлСн Π½Π° рисункС Π½ΠΈΠΆΠ΅.

Π Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ самыС ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Java array ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

— copyOf (массив, Π΄Π»ΠΈΠ½Π°) – Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ копию ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ массива ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π΄Π»ΠΈΠ½Ρ‹. Если пСрСданная Π΄Π»ΠΈΠ½Π° большС ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ массива, Ρ‚ΠΎ всС «лишниС» элСмСнты Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (0, Ссли простой Ρ‚ΠΈΠΏ, ΠΈ null , Ссли ссылочный).

— copyOfRange (массив, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ индСкс, послСдний индСкс) – Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π½Π° рисункС, Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄. Он ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ массива, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ индСксами, начиная с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈ заканчивая послСдним.

— sort (массив) – сортируСт элСмСнты массива ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ.

— fill (массив, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) – заполняСт ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΉ массив ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ.

— binarySearch (массив, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) – Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ индСкс, ΠΏΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ элСмСнт с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ находится Π² ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠΌ отсортированном массивС. Если ΠΆΠ΅ Ρ‚Π°ΠΊΠΎΠΉ элСмСнт отсутствуСт, Ρ‚ΠΎ возвращаСтся ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ число.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ статичСскиС, Ρ‚ΠΎ для ΠΈΡ… Π²Ρ‹Π·ΠΎΠ²Π° Π½Π΅ трСбуСтся ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ экзСмпляр класса Arrays. Они Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ· Π½Π΅Π³ΠΎ: Arrays.sort(arr).

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠœΡ‹ рассмотрСли Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Π΅ аспСкты ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ массивов, ΠΈ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ приступаСт ΠΊ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ Java для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, этого Ρ…Π²Π°Ρ‚ΠΈΡ‚ для Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ понимания Ρ‚Π°ΠΊΠΎΠΉ сущности, ΠΊΠ°ΠΊ массив, ΠΈ основных ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌ. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° даст большС понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄Π°Π½Π½ΠΎΠ³ΠΎ инструмСнта. ΠŸΠΎΡΡ‚ΠΎΠΌ Π½Π΅ ΠΏΠΎΠ»Π΅Π½ΠΈΡ‚Π΅ΡΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ нСсколько ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΉ, манипулируя массивами Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ способами.

Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ класс Array Java ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡƒΠΆΠ΅ Π² Β«Π±ΠΎΠ΅Π²Ρ‹Ρ…Β» условиях, поэтому для Π½Π°Ρ‡Π°Π»Π° рСкомСндуСтся ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ всС основныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с массивами Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² Java β€” Π’Π΅ΠΌΡ‹ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ

ΠžΠ±Π·ΠΎΡ€

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² Java β€” это Π½Π΅ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хранят Π² памяти элСмСнты сходного Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…. ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² Java ΠΌΠΎΠ³ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² сСбС ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅, Ρ‚Π°ΠΊ ΠΈ Π½Π΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…. БущСствуСт Π΄Π²Π° Ρ‚ΠΈΠΏΠ° массивов: ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅, Π° ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы ΠΈΠΌΠ΅ΡŽΡ‚ 2D, 3D ΠΈ nD измСрСния.

ΠžΠ±Π»Π°ΡΡ‚ΡŒ примСнСния ΡΡ‚Π°Ρ‚ΡŒΠΈ

  • Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ массивы Π² Java ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ способы ΠΈΡ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.
  • ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ элСмСнты массива.
  • ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ обсудили Π΄Π²Π° Ρ‚ΠΈΠΏΠ° массивов ΠΈ способы ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈ извлСчСния массивов ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.
  • Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ массивами Java ΠΈ массивами C++.
  • ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ рассмотрим прСимущСства ΠΈ нСдостатки использования массивов Π² Java.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Array Π² Java

Π’ этом Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΌ ΠΌΠΈΡ€Π΅ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ являСтся ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ для программиста. КаТдая малСнькая Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ сохранСна Π² ячСйкС памяти для Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ использования. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ сотни Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² Ρ€Π°Π·Π½Ρ‹Ρ… сотнях ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ массив, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ всС эти значСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ . Π§Ρ‚ΠΎΠ±Ρ‹ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти Π΄Π°Π½Π½Ρ‹Π΅, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ имя, Ρ‡Ρ‚ΠΎ дСлаСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Массив β€” это ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹ΠΉ Π½Π΅ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для сохранСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… элСмСнтов (ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…) Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² Java ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… (Ρ†Π΅Π»ΠΎΠ΅ число, символ, число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΈ Ρ‚. Π΄.) ΠΈ Π½Π΅ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚). ЗначСния ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… хранятся Π² ячСйкС памяти, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π² случаС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΠ½ΠΈ хранятся Π² ΠΊΡƒΡ‡Π΅ памяти.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΡ†Π΅Π½ΠΊΠΈ пяти ΡƒΡ‡Π΅Π½ΠΈΠΊΠΎΠ². ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив ΠΈΠ· пяти Π΄Π»ΠΈΠ½. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅

Ρ‚Π°ΠΊ Π»Π΅Π³ΠΊΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ мСста , Π° Ρ‚Π°ΠΊΠΆΠ΅ эффСктивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ .

Как Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ массивы Π² Java?

Как ΠΎΠ±ΡΡƒΠΆΠ΄Π°Π»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, массив β€” это структура Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ хранятся элСмСнты ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ‚ΠΈΠΏΠ° Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅.

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ массивы Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² java. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для хранСния пяти ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½Ρ‹Ρ… ΠΎΡ†Π΅Π½ΠΎΠΊ ΡƒΡ‡Π΅Π½ΠΈΠΊΠ°:

Но Ρ‡Ρ‚ΠΎ, Ссли ΠΌΡ‹ сохраним всС эти ΠΏΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ?

Ко всСм Π²Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚Ρ‹ΠΌ пяти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΏΠΎ индСксу, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ извСстСн ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π° основС индСкса.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ индСкс всСгда начинаСтся с 0 . Π˜Ρ‚Π°ΠΊ, Ссли Ρƒ нас Π΅ΡΡ‚ΡŒ массив ΠΈΠ· 5 элСмСнтов, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ индСксов ΠΎΡ‚ 0 Π΄ΠΎ 4.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт хранится ΠΏΠΎ индСксу 0, Π° послСдний β€” ΠΏΠΎ 4-ΠΌΡƒ индСксу. На ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π½ΠΈΠΆΠ΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ массив помСщался Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив Π² Java?

Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ для использования массива Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ использованиСм. Для создания массива Π² Java Π½Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Π΄Π²Π΅ Π²Π΅Ρ‰ΠΈ: Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π΄Π»ΠΈΠ½Π°.

Как извСстно, массив β€” это ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ Π΅Π³ΠΎ создании. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ количСство элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ массив.

Бинтаксис:

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования, ΠΏΡ€ΠΈ объявлСнии массива Π² java ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ [] ΠΊΠ°ΠΊ Π΄ΠΎ, Ρ‚Π°ΠΊ ΠΈ послС ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово new ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π΅ΡˆΠ°ΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для создания массива. Π‘Π΅Π· Π΅Π³ΠΎ использования ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ссылочныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ массива.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массивы Π² Java двумя Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ способами —

  1. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с использованиСм индСкса — ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ создания массива ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ элСмСнту, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΅Π³ΠΎ индСкс. НСназначСнныС элСмСнты автоматичСски ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… массива. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС 0 для цСлочислСнного Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Ссли ΠΌΡ‹ попытаСмся ввСсти большС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ρ‡Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива, это Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ArrayIndexOutOfBoundsException.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

  1. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ объявлСнии — ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вСсь массив ΠΏΡ€ΠΈ Π΅Π³ΠΎ объявлСнии, просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки {}. Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ…, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ int, float ΠΈ Ρ‚. Π΄. этого Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ элСмСнт массива?

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π² массивах Java, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ индСксу. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ индСкса, ΠΌΡ‹ сообщаСм компилятору Java, Π³Π΄Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Для этого Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΡƒΡŽ скобку [] с порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π΅. Если ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ Π²Π²Π΅Π»ΠΈ Π½ΠΎΠΌΠ΅Ρ€ индСкса большС Π΄Π»ΠΈΠ½Ρ‹ массива, Ρ‚ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° ArrayIndexOutOfBoundsException (ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± этом ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Π½Π° Java.

Π’Ρ‹Π²ΠΎΠ΄:

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΠ΄Π° ΠΌΡ‹ создали массив Ρ‚ΠΈΠΏΠ° int, ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π² ΠΏΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ПослС этого ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡ΠΈΠ»ΠΈ элСмСнт массива с индСксом [0] с 2 Π½Π° 1, просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ индСкс, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ массивом.

ΠŸΠ΅Ρ€Π΅Π±ΠΎΡ€ элСмСнтов массива

Для выполнСния любой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ отобраТСния Π»ΡŽΠ±Ρ‹Ρ… элСмСнтов ΠΌΡ‹ использовали индСкс. Но с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ индСкса ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π·Π° Ρ€Π°Π·. Если Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС элСмСнты массива, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ индСкса.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Ρ‚ΡŒ эту ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, Ρƒ нас Π΅ΡΡ‚ΡŒ функция зацикливания Π² Java, которая слСдуСт ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ нСсколько Ρ€Π°Π·.

БущСствуСт Π΄Π²Π° способа ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° элСмСнтов массива.

  1. ИспользованиС Ρ†ΠΈΠΊΠ»Π° for — ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ способС ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° элСмСнтов массива Π½Π°ΠΌ сначала Π½ΡƒΠΆΠ½Π° Π΄Π»ΠΈΠ½Π° массива. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ встроСнного Π² Java свойства length. Если ΠΌΡ‹ Π½Π°Ρ‡Π½Π΅ΠΌ Ρ†ΠΈΠΊΠ» for с 0, Ρ‚ΠΎ общая итСрация Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½Π° Π΄Π»ΠΈΠ½Π΅ массива β€” 1, Π° Ссли ΠΌΡ‹ Π½Π°Ρ‡Π½Π΅ΠΌ Ρ†ΠΈΠΊΠ» for с 1, Ρ‚ΠΎ общая итСрация Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½Π° Π΄Π»ΠΈΠ½Π΅ массива.

    Как ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π²Ρ‹ΡˆΠ΅, всСго Π² массивС 9 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΈ ΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ Ρ†ΠΈΠΊΠ» ΠΎΡ‚ 0 Π΄ΠΎ 8.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π΅ ΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ использовали Ρ†ΠΈΠΊΠ» for для прохоТдСния элСмСнта массива.

Для количСства ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ ΠΌΡ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π΄Π»ΠΈΠ½Ρƒ массива, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ свойство Π΄Π»ΠΈΠ½Ρ‹ массива.

  1. ИспользованиС Ρ†ΠΈΠΊΠ»Π° for-each — Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ†ΠΈΠΊΠ» for, Π½ΠΎ Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½Π° Π΄Π»ΠΈΠ½Π° массива. ΠœΠ΅Ρ‚ΠΎΠ΄ for-each Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнт массива, Ρ‡Π΅ΠΌ Ρ†ΠΈΠΊΠ» for-loop. ΠŸΡ€ΠΈ использовании Ρ†ΠΈΠΊΠ»Π° for-each Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ‚ΠΈΠΏΠ°, Ρ‡Ρ‚ΠΎ ΠΈ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ массива. Если этого Π½Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, компилятор выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ компиляции, Π³ΠΎΠ²ΠΎΡ€ΡΡ‰ΡƒΡŽ ΠΎ нСсовмСстимых Ρ‚ΠΈΠΏΠ°Ρ…: строка Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π° Π² YourDefinedDataType 9.0011

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π’Ρ‹Π²ΠΎΠ΄:

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ — для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта String Π² strArray, Π²Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ i .

Помимо Π΄Π²ΡƒΡ… описанных Π²Ρ‹ΡˆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ†ΠΈΠΊΠ»Π°, ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» while для ΠΎΠ±Ρ…ΠΎΠ΄Π°.

Π’ΠΈΠΏΡ‹ массивов Π² Java

Π’ Java сущСствуСт Π΄Π²Π° Ρ‚ΠΈΠΏΠ° массивов:

  1. ΠžΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив
  2. ΠœΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив

1.

ΠžΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив

Массив, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π½ΠΈΠΆΠ½ΠΈΠΉ индСкс ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅, называСтся ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌ массивом. Π­Ρ‚ΠΎ просто список ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ….

ΠžΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ Π»ΠΈΠ±ΠΎ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ строки ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… столбцов, Π»ΠΈΠ±ΠΎ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… строк ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ столбца. НапримСр, ΠΎΡ†Π΅Π½ΠΊΠΈ учащСгося ΠΏΠΎ пяти ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°ΠΌ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив.
ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π’ΠΎ врСмя выполнСния ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ строки JVM (Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина Java) создаст ΠΏΡΡ‚ΡŒ Π±Π»ΠΎΠΊΠΎΠ² Π² пяти Ρ€Π°Π·Π½Ρ‹Ρ… мСстах памяти, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΌΠ΅Ρ‚ΠΊΠΈ[0], ΠΌΠ΅Ρ‚ΠΊΠΈ[1], ΠΌΠ΅Ρ‚ΠΊΠΈ[2], ΠΌΠ΅Ρ‚ΠΊΠΈ[3]. , ΠΈ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠΈ[4].

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив, сначала объявив массив, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова.
ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Π² Java.

Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΠ΄Π° ΠΌΡ‹ создали ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив с ΠΈΠΌΠ΅Π½Π΅ΠΌ strArray, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ строку ΠΈ нСсколько столбцов.

2. ΠœΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив

НС Π²ΠΎ всСх случаях ΠΌΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив. Иногда Π½Π°ΠΌ трСбуСтся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π²Π½ΡƒΡ‚Ρ€ΠΈ массива.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΏΡΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠ² ΠΈ ΠΎΡ†Π΅Π½ΠΊΠΈ ΡˆΠ΅ΡΡ‚ΠΈΠ΄Π΅ΡΡΡ‚ΠΈ ΡƒΡ‡Π΅Π½ΠΈΠΊΠΎΠ². Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ всСго лишь Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ 60 ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов Π΄Π»ΠΈΠ½ΠΎΠΉ ΠΏΡΡ‚ΡŒ, Π° Π·Π°Ρ‚Π΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС эти массивы Π² ΠΎΠ΄Π½ΠΎΠΌ массивС. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив с ΠΏΡΡ‚ΡŒΡŽ столбцами ΠΈ 60 строками.

ΠœΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив β€” это просто массив массивов, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ нСсколько строк ΠΈ столбцов. Π­Ρ‚ΠΈ массивы Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Ρ‚ΠΈΠΏΡ‹ 2D, 3D ΠΈ nD. Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСны с использованиСм этого Ρ‚ΠΈΠΏΠ° массива.

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄Π²Π΅ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобки вмСсто ΠΎΠ΄Π½ΠΎΠΉ.
ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²Π΅ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки, пСрвая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… прСдставляСт строки, Π° вторая β€” столбцы.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся с ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌ массивом Π½Π° извСстном ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ умноТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† β€” ΠΎΡ‡Π΅Π½ΡŒ извСстный ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π΅ ΠΌΡ‹ объявили Π΄Π²Π° массива Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 3×3. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ создали Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ массив с Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΆΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ для хранСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. ПозТС ΠΌΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ Π»ΠΎΠ³ΠΈΠΊΡƒ умноТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†.

ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

Как слСдуСт ΠΈΠ· названия, массив ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² прСдставляСт собой Π½Π΅ Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², хранящихся Π² массивС. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² массивС, Π° сохраняСт ΡΡΡ‹Π»ΠΎΡ‡Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Бинтаксис Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π²Ρ‹ΡˆΠ΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

ПослС выполнСния ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π±ΡƒΠ΄Π΅Ρ‚ создан массив ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² класса Student Π΄Π»ΠΈΠ½ΠΎΠΉ 3 ссылки studentObj. Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ new.

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π»ΡƒΡ‡ΡˆΠ΅ разбСрСмся с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Π½Π° Java.

Π’Ρ‹Π²ΠΎΠ΄:

Как Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π΅, ΠΌΡ‹ сначала объявили массив ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π΄Π»ΠΈΠ½ΠΎΠΉ Ρ‚Ρ€ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Ρ‚Ρ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ obj[0], obj[1] ΠΈ obj[ 2]. А Π·Π°Ρ‚Π΅ΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π» ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова.

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° массивов Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

Аналогичным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ массивы Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΌΡ‹ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌ добавлСния ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠΉ скобки с ΠΈΠΌΠ΅Π½Π΅ΠΌ массива, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌ Π΅Π΅ Π² Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ….

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ массива ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π½Π΅ трСбуСтся ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива. Если Π²Ρ‹ это сдСлаСтС, ΠΎΠ½ выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ компиляции.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ массива Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ имя массива. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любоС имя, ΠΊΠ°ΠΊΠΎΠ΅ Π·Π°Ρ…ΠΎΡ‚ΠΈΠΌ. Но Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° с Ρ‚Π΅ΠΌ ΠΆΠ΅ Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π² массивС Π² основной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈΠ½Π°Ρ‡Π΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ компиляции.

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π»ΡƒΡ‡ΡˆΠ΅ разбСрСмся с нСбольшой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Π½Π° Java.

Π’Ρ‹Π²ΠΎΠ΄:

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π΅ ΠΌΡ‹ создали ΡΡ‚Π°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ массив myArray ΠΈΠ· основной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ массива Π½Π΅ трСбуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ скобки [] , Π½ΠΎ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ скобки [] для опрСдСлСния массива.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ массивов ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²

Иногда Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ массив ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ для выполнСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΈ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ этот ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ массив Π±Ρ‹Π» Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠœΡ‹ ΡƒΠΆΠ΅ ΡƒΠ·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ массивы Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ посмотрим, ΠΊΠ°ΠΊ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ массивы ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово return.

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π»ΡƒΡ‡ΡˆΠ΅ разбСрСмся с нСбольшой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Π½Π° Java.

Π’Ρ‹Π²ΠΎΠ΄:

Подобно Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² соотвСтствии с Ρ‚ΠΈΠΏΠΎΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния Π² массивС, Π½Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ с Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… массива. ΠœΡ‹ сдСлали Ρ‚ΠΎ ΠΆΠ΅ самоС Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ doMultiplication() Ρ‚ΠΈΠΏΠ° int[] ΠΈ сохранили Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² массивС Ρ‚ΠΈΠΏΠ° int multipleArr.

Анонимный массив Π² Java

Как слСдуСт ΠΈΠ· названия, массивы Π±Π΅Π· ΠΈΠΌΠ΅Π½ΠΈ Π² Java Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹ΠΌΠΈ массивами. Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ массива ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ трСбуСтся массив Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ этот массив Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ссылочной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Π’Π°ΠΊ ΠΊΠ°ΠΊ Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Π΅ массивы Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ссылочных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π΅Π³ΠΎ элСмСнту, хотя ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ для нашСй Π»ΠΎΠ³ΠΈΠΊΠΈ.

Основной ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ создания Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠ³ΠΎ массива являСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ использования массива.

Бинтаксис:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π’ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠΌ массивС Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π²Π½ΡƒΡ‚Ρ€ΠΈ [], Π½ΠΎ количСство Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ Π²Π½ΡƒΡ‚Ρ€ΡŒ {}, становится Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ массива .

ArrayIndexOutOfBoundsException

Π”ΠΎ сих ΠΏΠΎΡ€ ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ элСмСнту массива ΠΈ ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ всС элСмСнты массива. Но Ρ‡Ρ‚ΠΎ, Ссли ΠΏΠΎ ошибкС ΠΌΡ‹ попытаСмся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ индСкса, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ большС Π΄Π»ΠΈΠ½Ρ‹ массива ΠΈΠ»ΠΈ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ?

Π’ этой ситуации JVM Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния ArrayIndexOutOfBoundsException , ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° массив, доступ ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ нСдопустимого индСкса.

Если Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ попытаСмся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π²Π°Π»ΡŽΡ‚Π°ΠΌ[5], систСма выдаст Π½Π°ΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ArrayIndexOutOfBoundsException.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π’Ρ‹Π²ΠΎΠ΄:

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π΅ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Π΄ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ индСкса [4]. Но ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ массива ΠΏΠΎ индСксу [6], компилятор Π²Ρ‹Π΄Π°Π» ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ массив Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Π΄Π»ΠΈΠ½ΠΎΠΉ ΠΏΡΡ‚ΡŒ.

ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ массивов Π² Java

ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ массива Π² Java β€” это Π½Π΅ Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ созданиС Π½ΠΎΠ²ΠΎΠ³ΠΎ массива, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈΠ· ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойства clone().

Бинтаксис:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π’Ρ‹Π²ΠΎΠ΄:

ΠŸΡ€ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива выполняСтся повСрхностная копия . ΠΏΡƒΡ‚Π΅ΠΌ создания Π½ΠΎΠ²ΠΎΠ³ΠΎ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ массива, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ссылаСтся Π½Π° исходный массив.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π’Ρ‹Π²ΠΎΠ΄:

Как ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, ΠΌΡ‹ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ 2D-массив cloneArray ΠΈΠ· myArray. Π₯отя ΠΎΠ±Π° массива Π½Π΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹, ΠΈΡ… элСмСнты ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ массивом Java ΠΈ массивом C++

Помимо повСдСния массивов, ΠΌΠ΅ΠΆΠ΄Ρƒ C++ ΠΈ Java сущСствуСт мноТСство Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ массивов.

  • ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ объявляСм массив Π² C++, выдСляСтся ΠΏΠ°ΠΌΡΡ‚ΡŒ для массива. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ объявляСм массив Π² Java, ΠΌΡ‹ объявляСм Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΡΡ‹Π»ΠΎΡ‡Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° элСмСнт массива послС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ массива с использованиСм Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова.
  • Всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ пытаСмся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ элСмСнту, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ индСкс мСньшС 0 ΠΈΠ»ΠΈ большС Π΄Π»ΠΈΠ½Ρ‹ массива, JVM ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, вызывая ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ IndexOutOfBoundsException. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя C++ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ возмоТности ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ошибки. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² бСсконСчный Ρ†ΠΈΠΊΠ» Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½Π° максимальная Π΄Π»ΠΈΠ½Π° Π±ΡƒΡ„Π΅Ρ€Π°.

  • Π§Ρ‚ΠΎ касаСтся массива ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², C++, скорСС всСго, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ сконструированный массив ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π·Π° ΠΎΠ΄Π½Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Java Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… шагов для выполнСния массива ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

  • Как ΠΈ массивы Π² Java, C++ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ свойства Π΄Π»ΠΈΠ½Ρ‹ для вычислСния Π΄Π»ΠΈΠ½Ρ‹ массива ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ этого Ρ…ΠΎΡ‚ΠΈΠΌ. Нам Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ массива Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π° C++.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΈ нСдостатки массивов Π² Java

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π°

  • ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ элСмСнта массива случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ индСкс, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ массивом.
  • ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ мноТСство Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² массивах.
  • Π‘Ρ‚Π°Π»ΠΎ Π»Π΅Π³Ρ‡Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ массивами.

НСдостатки

  • ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² Java Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ встроСнных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² удалСния ΠΈΠ»ΠΈ добавлСния.
  • Π’ массивах Java Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ памяти . ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ArrayList.
  • ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² Java строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ .

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

  • Массив Π² Java Ρ€Π°Π²Π΅Π½ Π½Π΅ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для хранСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ….
  • Доступ ΠΊ элСмСнтам массива Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ ΠΏΠΎ индСксу Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 0 Π΄ΠΎ Π΄Π»ΠΈΠ½Ρ‹ массива — 1.
  • ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ†ΠΈΠΊΠ»Π° ΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° для Ρ†ΠΈΠΊΠ»Π° ΠΏΠΎ всСм элСмСнтам массива.
  • Π’ Java Π΅ΡΡ‚ΡŒ Π΄Π²Π° массива: ΠžΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ ΠΈ ΠœΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ , Π³Π΄Π΅ single ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅, Π° multi Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя 2D, 3D ΠΈ nD измСрСния.
  • Аналогично ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠ°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ массив ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Java.
  • ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ массив Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ массив ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².
  • Массив Π±Π΅Π· ΠΈΠΌΠ΅Π½ΠΈ называСтся Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹ΠΌ массивом , ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΌ для ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ³ΠΎ использования.
  • ΠœΡ‹ обсудили Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ массивов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойства clone() ΠΊΠ°ΠΊ для ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ для ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов.

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы (FAQ)

1. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ массив?

Массив β€” это ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹ΠΉ Π½Π΅ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для сохранСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

2. Π―Π²Π»ΡΡŽΡ‚ΡΡ Π»ΠΈ массивы ссылочными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π² Java?

Π”Π°. Π’ Java массив прСдставляСт собой ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², рассматриваСмых ΠΊΠ°ΠΊ ссылки.

3. Π―Π²Π»ΡΡŽΡ‚ΡΡ Π»ΠΈ массивы ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² Java?

НСт. ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² Java Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Но массив ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅, Ρ‚Π°ΠΊ ΠΈ Π½Π΅ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ….

4. МоТно Π»ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива Π² Java?

НСт. Как ΠΌΡ‹ обсуТдали Ρ€Π°Π½Π΅Π΅, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ сначала ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π² Java. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΡ‹ объявим массив, ΠΌΡ‹ Π½Π΅ смоТСм ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π²ΠΎ врСмя выполнСния.

Π’Ρ‹Π·ΠΎΠ² Java ΠΈΠ· MATLAB (внСшниС интСрфСйсы/API)

Π’Ρ‹Π·ΠΎΠ² Java ΠΈΠ· MATLAB (внСшниС интСрфСйсы/API)
Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ интСрфСйсы/API Β Β Β 

Π Π°Π±ΠΎΡ‚Π° с массивами Java

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Java Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ ΠΈΠ· Π½ΠΈΡ… ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΡ… Π² Π²ΠΈΠ΄Π΅ массива, ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ ΠΈΡ… Π² Ρ‚Π°ΠΊΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅. Π­Ρ‚ΠΎΡ‚ массив Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ массивом Java (Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π½Ρ‹ΠΌ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ»ΠΈ созданным Π² MATLAB), Π»ΠΈΠ±ΠΎ, ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Π°Ρ…, массивом ячССк MATLAB. Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ описываСтся, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ массивы Java ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌΠΈ Π² MATLAB. Π’ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… Π±ΡƒΠ΄Π΅Ρ‚ описано, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ массивы ячССк MATLAB Π² Π²Ρ‹Π·ΠΎΠ²Π°Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Java.

Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹:

  • Как MATLAB прСдставляСт массив Java
  • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ массива ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² MATLAB
  • Доступ ΠΊ элСмСнтам массива Java
  • НазначСниС массиву Java
  • ОбъСдинСниС массивов Java
  • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ ссылки Π½Π° массив
  • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΏΠΈΠΈ массива Java

Как MATLAB прСдставляСт массив Java

Π’Π΅Ρ€ΠΌΠΈΠ½ Java-массив относится ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ массиву ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Java, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ конструктора ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° класса Java. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Java Π² MATLAB, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ javaArray . Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° массива Java сущСствСнно отличаСтся ΠΎΡ‚ структуры ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈΠ»ΠΈ массива MATLAB. MATLAB ΠΏΠΎ возмоТности скрываСт эти различия, позволяя Π²Π°ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с массивами, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ синтаксис ΠΊΠΎΠΌΠ°Π½Π΄ MATLAB. Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… различиях ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с массивами Java.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ измСрСния

Массив Π² языкС Java являСтся строго ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠΉ структурой, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ измСряСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΌ массивом, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΡƒΡŽ структуру, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ массив массивов. Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ измСрСния, Π²Ρ‹ добавляСтС ΠΊ массиву Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡƒΡ€ΠΎΠ²Π½ΠΈ, прСвращая Π΅Π³ΠΎ Π² массив массивов массивов ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅ массивы ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² MATLAB, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это язык программирования Π½Π° основС ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΈ массивов.

MATLAB ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΌΠΈ массивами Java, рассматривая ΠΈΡ… ΠΊΠ°ΠΊ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ самого языка. Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ доступ ΠΊ элСмСнтам массива массивов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚ΠΎΡ‚ ΠΆΠ΅ синтаксис MATLAB, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ использовали Π±Ρ‹, Ссли Π±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ. Если Π±Ρ‹ Π²Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² массив большС ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ, MATLAB смог Π±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ структурС ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½Π΅ΠΉ, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ это Π±Ρ‹Π» ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив MATLAB.

Π’ Π»Π΅Π²ΠΎΠΉ части ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ рисунка ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ ΠΎΠ΄Π½ΠΎ-, Π΄Π²ΡƒΡ…- ΠΈ Ρ‚Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы Java. Π‘ΠΏΡ€Π°Π²Π° ΠΎΡ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ Ρ‚ΠΎΡ‚ ΠΆΠ΅ массив прСдставляСтся Π²Π°ΠΌ Π² MATLAB. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы прСдставлСны ΠΊΠ°ΠΊ Π²Π΅ΠΊΡ‚ΠΎΡ€-столбСц.

Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ массива

Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ массива Java отличаСтся ΠΎΡ‚ индСксирования массива MATLAB. Π˜Π½Π΄Π΅ΠΊΡΡ‹ массива Java ΠΎΡ‚ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ нуля, индСксы массива MATLAB ΠΎΡ‚ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹. Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° Java Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ доступ ΠΊ элСмСнтам массива y Π΄Π»ΠΈΠ½Ρ‹ N , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΡ‚ y[0] Π΄ΠΎ y[N-1] . ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с этим массивом Π² MATLAB Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ доступ ΠΊ Ρ‚Π΅ΠΌ ΠΆΠ΅ элСмСнтам, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΡ‚ΠΈΠ»ΡŒ индСксации MATLAB ΠΎΡ‚ y(1) Π΄ΠΎ y(N) . Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ массив Java ΠΈΠ· 10 элСмСнтов, сСдьмой элСмСнт получаСтся с использованиСм y(7) , Π° Π½Π΅ y[6] , ΠΊΠ°ΠΊ Π²Ρ‹ использовали Π±Ρ‹ ΠΏΡ€ΠΈ написании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Java.

Π€ΠΎΡ€ΠΌΠ° массива Java

Массив Java ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ массива MATLAB ΠΎΠ±Ρ‰Π΅ΠΉ Ρ„ΠΎΡ€ΠΌΠΎΠΉ . Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив MATLAB сохраняСт ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ каТдая строка ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ, Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ столбСц β€” ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡƒΡŽ высоту. Java-Π°Π½Π°Π»ΠΎΠ³ этого, массив массивов, Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ придСрТиваСтся этой ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ массив Π½ΠΈΠΆΠ½Π΅Π³ΠΎ уровня ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π½ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ.

Вакая структура массива ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π° Π½ΠΈΠΆΠ΅. Π­Ρ‚ΠΎ массив ΠΈΠ· Ρ‚Ρ€Π΅Ρ… Π±Π°Π·ΠΎΠ²Ρ‹Ρ… массивов Ρ€Π°Π·Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹. Π’Π΅Ρ€ΠΌΠΈΠ½ Ρ€Π²Π°Π½Ρ‹ΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для описания Ρ‚Π°ΠΊΠΎΠ³ΠΎ располоТСния элСмСнтов массива, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠΎΠ½Ρ†Ρ‹ массива Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ. Когда ΠΌΠ΅Ρ‚ΠΎΠ΄ Java Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив со структурой этого Ρ‚ΠΈΠΏΠ°, MATLAB сохраняСт Π΅Π³ΠΎ Π² массивС ячССк.

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΡ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива Java

Когда функция MATLAB size примСняСтся ΠΊ простому массиву Java, количСство Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… строк Ρ€Π°Π²Π½ΠΎ Π΄Π»ΠΈΠ½Π΅ массива Java, Π° количСство столбцов всСгда Ρ€Π°Π²Π½ΠΎ 1.

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива массивов Java Π½Π΅ Ρ‚Π°ΠΊ просто. ΠŸΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ рваная Ρ„ΠΎΡ€ΠΌΠ° массива, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΈΠ· Java, Π΄Π΅Π»Π°Π΅Ρ‚ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ для ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. Π’ Π½Π΅ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½ΠΎΠΌ массивС Java Π½Π΅Ρ‚ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ значСния, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ массивов Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня.

Когда функция size примСняСтся ΠΊ массиву массивов Java, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ описываСт Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ массива. Для ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ здСсь массива Java

size(A) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ самого высокого уровня массива A. Π‘Π°ΠΌΡ‹ΠΉ высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ массива ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ 3 Π½Π° 1.

  •  Ρ€Π°Π·ΠΌΠ΅Ρ€(А)
    ΠΎΡ‚Π²Π΅Ρ‚ =
         3 1
     

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня, скаТСм, массива ΠΈΠ· пяти элСмСнтов Π² строкС 3, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ строкС явно.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ size , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис. Однако Π²Ρ‹, вСроятно, Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ это ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для опрСдСлСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ измСрСния, dim=1 , Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это Π±ΡƒΠ΄Π΅Ρ‚ СдинствСнноС Π½Π΅ΡƒΠ½Π°Ρ€Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅.