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

ΠœΠ°ΡΡΠΈΠ²Ρ‹

ΠœΠ°ΡΡΠΈΠ²Ρ‹

Java-массивы — это ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ для хранСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ числа элСмСнтов Π² Π²ΠΈΠ΄Π΅ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив, Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° массив ΠΈ ΠΏΡ€ΠΎΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π½ΠΎΠ²Ρ‹ΠΌ массивом, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

int[] intarray = new int[100]; //массив ΠΈΠ· 100 Ρ†Π΅Π»Ρ‹Ρ… чисСл

Имя Ρ‚ΠΈΠΏΠ° массива состоит ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ Ρ‚ΠΈΠΏΠ° элСмСнтов массива, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:int[], double[], String[], Agent[]. Π Π°Π·ΠΌΠ΅Ρ€ массива Π½Π΅ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ°. РаспрСдСлСниС фактичСского Ρ€Π°Π·ΠΌΠ΅Ρ€Π° выдСляСмой памяти для элСмСнтов массива осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ выраТСния ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ new int[100], ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ здСсь ΠΈ задаСтся Ρ€Π°Π·ΠΌΠ΅Ρ€ массива. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΊΠ° Π’Ρ‹ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ массив, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π΅Π½ null, ΠΈ Π’Ρ‹ Π½Π΅ смоТСтС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π΅Π³ΠΎ элСмСнтам.

АналогичноС графичСскоС объявлСниС массива ΠΈΠ· 100 цСлочислСнных элСмСнтов Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ рисункС.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΎΠΏΡ†ΠΈΡŽ Π”Ρ€ΡƒΠ³ΠΎΠΉ Π² свойствС Π’ΠΈΠΏ ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Ρ‚ΠΈΠΏ массива Π² ΠΏΠΎΠ»Π΅ справа.

НС ΠΎΠ±Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ внимания Π½Π° Ρ„Π»Π°ΠΆΠΎΠΊ Массив Π² свойствах ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°: этот Ρ„Π»Π°ΠΆΠΎΠΊ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Ρ‚ΠΈΠΏ HyperArray, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² систСмной Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠ΅, Π½ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ Java массивом.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ-массив, объявлСнная графичСски

Π’ случаС Ρ‚Π°ΠΊΠΎΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ массива всСм Π΅Π³ΠΎ числСнным элСмСнтам Π±ΡƒΠ΄Π΅Ρ‚ присвоСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0, элСмСнтам логичСского Ρ‚ΠΈΠΏΠ° boolean — Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false, Π° элСмСнтам всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ String) — null. Π”Ρ€ΡƒΠ³ΠΎΠΉ способ — явно Π·Π°Π΄Π°Ρ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ значСния для всСх элСмСнтов массива. Бинтаксис Π² этом случаС Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

int[] intarray = new int[] { 13, x-3, -15, 0, max{ a, 100 ) };

Π Π°Π·ΠΌΠ΅Ρ€ массива Π² Π΄Π°Π½Π½ΠΎΠΌ случаС опрСдСляСтся количСством Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² скобках. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ массива Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ввСсти <имя массива=»ΠΌΠ°ΡΡΠΈΠ²Π°»>. length, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

intarray.length

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ iΠΎΠΌΡƒ элСмСнту массива, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ввСсти:

intarray[i]

Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡ ΠΏΠΎ элСмСнтам массива осущСствляСтся ΠΏΠΎ индСксу. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ†ΠΈΠΊΠ» ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта массива Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ (ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ индСксы элСмСнтов массива Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с 0):

for(int i=0; i<intarray.length; i++) {
Β Β  intarray[i]++;
}

Java Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ Ρ†ΠΈΠΊΠ»Π° for для массивов. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ вычисляСт сумму элСмСнтов массива:

int sum = 0;
for(int element : intarray) {
Β Β  sum+=element;
}

ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° создаСт Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ‚ΠΈΠΏΠ° double ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ Π² Ρ†ΠΈΠΊΠ»Π΅:

double[][] doubleArray = new double[10][20];
for(int i=0; i<doublearray. length; i++) {
Β Β  for(int j=0; j<doubleArray[i].length; j++ ) {
Β Β Β Β Β  doubleArray[i][j] = i * j;
Β Β  }
}

ΠœΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ «ΠΌΠ°ΡΡΠΈΠ²Ρ‹ массивов». Массив, ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

new double[10][20]

являСтся массивом 10 массивов, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТит 20 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ‚ΠΈΠΏΠ° double. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ doublearray.length Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 10, Π° doubleArray[i].length Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 20.

ΠœΠ°ΡΡΠΈΠ²Ρ‹. Π§Π°ΡΡ‚ΡŒ 1 – Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅.

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

ΠœΠ°ΡΡΠΈΠ²Ρ‹ относятся ΠΊ ссылочным Ρ‚ΠΈΠΏΠ°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, собствСнно ΠΊΠ°ΠΊ ΠΈ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹, ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ….

Напомню Π΅Ρ‰Π΅ Ρ€Π°Π·, Ρ‡Ρ‚ΠΎ Π² Java всС являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ лишь ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹.

ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ создания массива ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Ρ‚Ρ€ΠΈ этапа:

  • ОбъявлСниС (declaration)
  • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ (instantation)
  • Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡΒ  (initialization)

ОбъявлСниС (declaration) массива

На этом этапС опрСдСляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ пСрСмСнная Ρ‚ΠΈΠΏΠ° ссылка (reference) Π½Π° массив, содСрТащая Ρ‚ΠΈΠΏ массива. Для этого записываСтся имя Ρ‚ΠΈΠΏΠ° элСмСнтов массива, ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ скобками указываСтся, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ ссылка Π½Π° массив, Π° Π½Π΅ простая пСрСмСнная, ΠΈ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ссылочного Ρ‚ΠΈΠΏΠ°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

int

[] numbers; // numbers ссылка Π½Π° массив int-ΠΎΠ²
String[] str; // str ссылка Π½Π° массив строк
byte[][] twoBytes; // twoBytes ссылка Π½Π° Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Π±Π°ΠΉΡ‚ΠΎΠ²
char[] letters, digits; //letters ΠΈ digits ссылки Π½Π° массивы символов

По сущСству объявлСниС массивов, Ρ‚ΠΎΡ‡Π½ΠΎ такая ΠΆΠ΅ опСрация ΠΊΠ°ΠΊ ΠΈ объявлСниС Π»ΡŽΠ±Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€Π°Π²Π΄Π° ΠΈΠΌΠ΅ΡŽΡ‰Π°Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ свой синтаксис, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это всС Ρ‚Π°ΠΊΠΈ массивы.

Java ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ синтаксис объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° массив, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с Π‘ ΠΈ Π‘++. Богласно этому синтаксису, ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько ΠΏΠ°Ρ€ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобок ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Π·Π° ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π° Π½Π΅ Π·Π° ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ‚ΠΈΠΏΠ°:

byte

arrayOfBytes[]; // Π’ΠΎ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ byte[] arrayOfBytes
byte arrayOfArrayOfBytes[][]; // Π’ΠΎ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ byte[][] arrayOfArrayOfBytes
byte[] arrayOfArrayOfBytes[]; // Π’ΠΎ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ byte[][] arrayOfArrayOfBytes

Однако Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Ρ‚Π°ΠΊΠΎΠΉ синтаксис сбиваСт с Ρ‚ΠΎΠ»ΠΊΡƒ, поэтому Π΅Π³ΠΎ слСдуСт ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Π»Π΅Π³ΠΊΠΎ ΡΠΏΡƒΡ‚Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ имСлось Π² Π²ΠΈΠ΄Ρƒ:

float

rates[], maxRate
; // ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Π΄Π²Π° массива?

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

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ массив Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ‚ΠΈΠΏΠ° float с ΠΈΠΌΠ΅Π½Π΅ΠΌ rates ΠΈ пСрСмСнная Ρ‚ΠΈΠΏΠ° float – maxRate.

Π’ΠΎ Π΅ΡΡ‚ΡŒ, Ссли ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки стоят сразу послС Ρ‚ΠΈΠΏΠ° объявляСмого массива, Ρ‚ΠΎ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π² этой строкС ΡΠ²Π»ΡΡŽΡ‚ΡΡ ссылками Π½Π° массивы объявляСмого Ρ‚ΠΈΠΏΠ°, Π° Ссли ΠΆΠ΅ скобки стоят справа ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½Π° являСтся ссылкой Π½Π° массив объявлСнного Ρ‚ΠΈΠΏΠ°.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ данная опСрация объявлСния массива Π΅Ρ‰Π΅ Π½Π΅ создаСт массив, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΡΠ²Π»ΡΡŽΡ‰ΡƒΡŽΡΡ ссылкой Π½Π° Π½Π΅Π³ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±Π΅Π· ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ компилятор выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ, Ρ‡Ρ‚ΠΎ пСрСмСнная массива Π½Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π°.

Пока объявлСнная пСрСмСнная массива Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π°, ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ (Ссли Π²Ρ‹ присвоитС) Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ null. И Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС опрСдСлСния ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ссылку Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

Π£ΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ массива ΠΏΡ€ΠΈ объявлСнии ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ массива Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π°Π·ΠΌΠ΅Ρ€ являСтся строго Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° массива, Π° Π½Π΅ ссылки Π½Π° Π½Π΅Π³ΠΎ.

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ ссылкой Π½Π° массив (имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ массива) ΠΈ самим массивом, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ эта ссылка.

БозданиС (instantation) массива

На этом этапС указываСтся количСство элСмСнтов массива, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ, выдСляСтся мСсто для массива Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ-ссылкС присваиваСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ = адрСс массива. ВсС эти дСйствия производятся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ new Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт Ρ‚ΠΈΠΏ элСмСнтов массива. НапримСр:

letters

= new
char[10]; // создали массив char-ΠΎΠ² Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² Π² 10 элСмСнтов

Но стоит Π΅Ρ‰Π΅ Ρ€Π°Π· Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄ΠΎ этого пСрСмСнная letters, Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ объявлСна ΠΊΠ°ΠΊ массив. Π§Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ Π±ΠΎΠ»Π΅Π΅ понятно, это ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

char

[] letters; // объявили letters ΠΊΠ°ΠΊ ссылку Π½Π° массив символов char
letters = new char[10]; // создали массив char-ΠΎΠ² Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² Π² 10 элСмСнтов

ΠŸΡ€ΠΈ создании массива с Ρ‚Π°ΠΊΠΈΠΌ синтаксисом всС элСмСнты массива автоматичСски ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ значСниями ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π­Ρ‚ΠΎ false для Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ boolean, ‘\u0000’Β  для Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ char, 0 для Ρ†Π΅Π»Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, 0.0 для Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΈ null для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ»ΠΈ массивов.

Π’ Java Ρ€Π°Π·ΠΌΠ΅Ρ€ массива фиксирован. Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ массив нСльзя ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ. Π–Π΅Π»Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ создаваСмого массива задаСтся Π½Π΅ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ†Π΅Π»Ρ‹ΠΌ числом. Но Π² любоС врСмя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° массива ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сопоставлСн Π½ΠΎΠ²Ρ‹ΠΉ массив Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ присвоСна ссылка Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ массив Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ‚ΠΈΠΏΠ° Ρ‡Ρ‚ΠΎ ΠΈ объявлСнная пСрСмСнная.

Π˜Π½Π΄Π΅ΠΊΡΡ‹ массивов всСгда Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с 0.

ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ: объявлСниС ΠΈ созданиС массива ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π² ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€. НапримСр:

char

[] letters = new char[10];

Π­Ρ‚ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ эквивалСнтСн Π΄Π²ΡƒΠΌ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌ Π²Ρ‹ΡˆΠ΅.

ПослС Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ пСрСмСнная letters Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΆΠ΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ссылку Π½Π° массив ΠΈ Ссли ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ вывСсти Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ [C@659e0bfd. А всС элСмСнты массива, ΠΊΠ°ΠΊ ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для объявлСнного Ρ‚ΠΈΠΏΠ°.

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ массив ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° new, Π½ΠΎ ссылку Π½Π° ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ массив ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ссылкС Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ‚ΠΈΠΏΠ°. НапримСр:

int

[] a = new int[4];
int[] b =a;

Но Π½Π°Π΄ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ a ΠΈ b ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ массив. По Π½Π°Ρ‡Π°Π»Ρƒ это ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ±ΠΈΠ²Π°Ρ‚ΡŒ с Ρ‚ΠΎΠ»ΠΊΡƒ, Π½ΠΎ Ссли ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π΅Π»ΠΎ с ссылочными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ всС становится Π½Π° свои мСста. Если этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ понятСн, Ρ‚ΠΎ Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅ ΠΌΡ‹ всС это Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ….

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚, Ρ‚Π°ΠΊ ΠΆΠ΅, Π΅Ρ‰Π΅ Ρ€Π°Π· ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ссылкС (ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ массива) ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ «ΠΏΡƒΡΡ‚ΠΎΠ΅» Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ null, Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ Π½ΠΈ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ адрСс ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти:

a

=null;

ПослС этого массив, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π»Π° данная ссылка, тСряСтся, Ссли Π½Π° Π½Π΅Π³ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… ссылок.

Π Π°Π·ΠΌΠ΅Ρ€ ΠΈΠ»ΠΈ Π΄Π»ΠΈΠ½Ρƒ массива ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ константы length, которая ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ массива ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Π³ΠΎ Π΄Π»ΠΈΠ½Ρƒ. ΠœΡ‹ Π΅ΠΉ ΡƒΠΆΠ΅ Π½Π΅ Ρ€Π°Π· пользовались Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΊΠΎΠ³Π΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠΉ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС.

МоТно ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ массивы Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ (пустой массив). НапримСр:

boolean

[] bits = new boolean[0];

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ массив нСльзя, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρƒ Π½Π΅Π³ΠΎ просто Π½Π΅Ρ‚ элСмСнтов ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π‘Ρ€Π°Π·Ρƒ ΠΆΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ вопрос, Π° Π½Π° ΠΊΠΎΠΉ ляд ΠΎΠ½ΠΈ Ρ‚ΠΎΠ³Π΄Π° Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΡƒΠΆΠ½Ρ‹ эти пустыС массивы? Но ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹ ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹!

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

ΠŸΡƒΡΡ‚ΠΎΠΉ массив Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ null, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ if’Π° для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π’ΠΎ ΠΆΠ΅ Π²Π΅Ρ€Π½ΠΎ для списков ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ. ИмСнно поэтому ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Collections.emptyList, emptySet, emptyMap.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ (initialization) массива

На этом этапС элСмСнты массива ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ значСния. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ элСмСнты массива значСниями ΠΌΠΎΠΆΠ½ΠΎ нСсколькими способами:

  1. ΠŸΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту массива ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² Ρ†ΠΈΠΊΠ»Π΅, Π½ΠΎ Π΄ΠΎ этого массив ΡƒΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ объявлСн ΠΈ создан)
  2. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ пСрСчислСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π΅Π³ΠΎ элСмСнтов Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобках (это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π½Π° этапС объявлСния, Ρ‚Π°ΠΊ ΠΈ Π½Π° этапС создания, Π½ΠΎ синтаксис ΠΏΡ€ΠΈ этом Ρ€Π°Π·Π½Ρ‹ΠΉ)

ΠžΠ±Ρ€Π°Ρ‰Π°Π΅Ρ‚ΡΡ ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ элСмСнту массива ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ Π΅Π³ΠΎ индСксу, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ начинаСтся с нуля, ΠΊΠ°ΠΊ это ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ.

Π˜Π½Π΄Π΅ΠΊΡΡ‹ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌΠΈ цСлочислСнными выраТСниями, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΈΠΏΠ° long, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ a[i+j] , a[i%5] , a[++i] . Π˜ΡΠΏΠΎΠ»Π½ΡΡŽΡ‰Π°Ρ систСма Java слСдит Π·Π° Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ значСния этих Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠ»ΠΈ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π΄Π»ΠΈΠ½Ρ‹ массива. Если ΠΆΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄ всС ΠΆΠ΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Java Π² Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Π½Π° консоль сообщСниС ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ индСкса массива Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π΅Π³ΠΎ опрСдСлСния (ArrayIndexOutOfBoundsException).

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ способа ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ:

int

[] ar = new int[2];
ar[0]=1;
ar[1]=2;

Π’Ρ‚ΠΎΡ€ΠΎΠΉ способ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ Ρ€Π°Π·Π½ΠΎΠΌΡƒ.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ массива ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ с этапом создания, Π½ΠΎ Π΄ΠΎ этой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ массив ΡƒΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ объявлСн. НапримСр:

int

[] ar; // объявлСниС массива
ar = new int[]{1,2}; // созданиС ΠΈ инициализация

Π”ΠΎ создания ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ массива ar ΠΎΠ½ ΡƒΠΆΠ΅ Π±Ρ‹Π» объявлСн.

Π’Π°ΠΊ ΠΆΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив ΠΌΠΎΠΆΠ½ΠΎ Π½Π° этапС Π΅Π³ΠΎ объявлСния ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ синтаксисом:

int

[] ar = {1,2}; // объявлСниС, созданиС ΠΈ инициализация массива

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅! Π­Ρ‚ΠΎΡ‚ синтаксис ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ массива Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ объявлСнии массива ΠΈ совмСщаСт сразу всС Ρ‚Ρ€ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ объявлСниС, созданиС ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ. Если массив ΡƒΠΆΠ΅ объявлСн, Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ синтаксис ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСльзя. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ. Π’ΠΎ Π΅ΡΡ‚ΡŒ:

int[] ar; // объявлСниС массива
ar = {1,2}; // ΠžΠ¨Π˜Π‘ΠšΠ!!! созданиС ΠΈ инициализация массива

Π’Π°ΠΊΠΎΠ΅ дСйство Π½Π΅ ΠΏΡ€ΠΎΠΊΠ°Ρ‚ΠΈΡ‚.

Π’Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° этапС объявлСния ΠΈ Ρ‡ΡƒΡ‚ΡŒ Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ:

int

[] ar = new int[]{1,2}; // объявлСниС, созданиС ΠΈ инициализация

Π₯отя этот синтаксис Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ. Если Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ, Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ синтаксис это Ρ‚ΠΎΠΆΠ΅ совмСщСниС всСх Ρ‚Ρ€Π΅Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ: объявлСния, создания ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

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

System

. out.println(new char[] { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ });

Бинтаксис ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ массивов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок называСтся Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ массив-Π»ΠΈΡ‚Π΅Ρ€Π°Π».

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ массивы-Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π° Π½Π΅ Π²ΠΎ врСмя Π΅Π΅ компиляции. Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ массив-Π»ΠΈΡ‚Π΅Ρ€Π°Π»:

int

[] perfectNumbers = {6, 28};

Он компилируСтся Π² Ρ‚Π°ΠΊΠΎΠΉ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ Java:

int

[] perfectNumbers = new int[2];
perfectNumbers[0] = 6;
perfectNumbers[1] = 28;

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

Однако Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ Java ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ массив Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈΠΌΠ΅Π΅Ρ‚ Π²Π°ΠΆΠ½Ρ‹Π΅ послСдствия. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ элСмСнты массива-Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ выраТСниями, вычисляСмыми Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π° Π½Π΅ постоянными выраТСниями, вычисляСмыми компилятором. НапримСр:

Point

[] points = { circle1.getCenterPoint(), circle2.getCenterPoint() };

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ΠΌΠ½ΠΎΠΆΠΊΠΎ попрактикуСмся.

Π’ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π½Π°ΠΌ извСстном ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ main(), ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° массива Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ Ссли Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС Π½Π΅Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ‡Ρ‚ΠΎ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ использования ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° if для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° null, Π΄Π°Π±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибки Π²ΠΎ врСмя исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΡ‹ сразу ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ массив Π² Ρ†ΠΈΠΊΠ»Π΅, ΠΏΡ€Π°Π²Π΄Π° соблюдая ΠΏΡ€Π°Π²ΠΈΠ»Π° Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π²Ρ‹ΠΉΡ‚ΠΈ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ максимального индСкса.

Π’ Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΡ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ‹ массива, Π° Π·Π°Ρ‚Π΅ΠΌ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ всС значСния элСмСнтов массива. Π’Ρ‚ΠΎΡ€ΠΎΠΉ Ρ†ΠΈΠΊΠ» Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚ΠΎ ΠΆΠ΅ самоС, Π½ΠΎ ΠΈΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π½Ρ‹ΠΌ способом.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ я ΠΏΡ€ΠΈΠ²Π΅Ρ‚ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡ€Π°Π΄ΠΎΠ²Π°Ρ‚ΡŒ ваш ΠΌΠΎΠ·Π³ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ вашС сознаниС  Π²Π°ΠΌ Π½Π΅ Π±Ρ‹Π»ΠΎ скучно Π·Π½Π°Π»ΠΈ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Π½ΠΎ ΠΊΠ°ΠΊ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ, Π½Ρƒ ΠΈ чисто Π² ΡƒΡ‡Π΅Π±Π½ΠΎ-ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… цСлях. ΠœΠΎΠΆΠ΅Ρ‚ Π½Π° досугС Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ΡΡŒ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ†ΠΈΠΊΠ».

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

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС ΠΌΡ‹ Π½Π΅ Π²Π²ΠΎΠ΄ΠΈΠ»ΠΈ Π½ΠΈ ΠΊΠ°ΠΊΠΈΡ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², поэтому ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ массив Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Π±Ρ‹Π» ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π² Ρ†ΠΈΠΊΠ»Π°Ρ…, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅ удовлСтворяСт условиям Ρ†ΠΈΠΊΠ»ΠΎΠ².

Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ случаС ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ массив Π±Ρ‹Π» ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π² Ρ†ΠΈΠΊΠ»Π°Ρ….

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива java | Gadget-apple.ru

Π’ Java ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ массив массивов, извСстный ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ:

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Java , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄ΠΎ 12 элСмСнтов Ρ‚ΠΈΠΏΠ° int :


НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ индСксированиС Π² Java начинаСтся с нуля, поэтому ΠΏΠ΅Ρ€Π²Ρ‹Π΅ элСмСнты массива ΠΈΠΌΠ΅ΡŽΡ‚ индСкс 0 , Π° Π½Π΅ 1 .

Аналогично ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΈ Ρ‚Ρ€Ρ‘Ρ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ ( 3D ) массив. НапримСр:

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅ personalInfo β€” это Ρ‚Ρ€Ρ‘Ρ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎ 24 (3*4*2) элСмСнтов Ρ‚ΠΈΠΏΠ° String .

Π’ Java ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива β€” это Ρ‚ΠΎΠΆΠ΅ массивы. Если Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ C/C++ , Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы Π² Java ΠΈ C/C++ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ. Но это Π½Π΅ совсСм Ρ‚Π°ΠΊ β€” Π² Java ряды массивов ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹. Π Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Π²ΠΎ врСмя ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Как ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Π² Java?

НиТС приводится ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива Java :

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ массива Ρ‚Π°ΠΊΠΆΠ΅ прСдставляСт собой массив, ΠΈ Π΄Π»ΠΈΠ½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ряда отличаСтся:


Π”Π°Π²Π°ΠΉΡ‚Π΅ напишСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ это Π΄ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ:

ΠŸΡ€ΠΈ запускС этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ:

Π”Π»ΠΈΠ½Π° ряда 1: 3
Π”Π»ΠΈΠ½Π° ряда 2: 4
Π”Π»ΠΈΠ½Π° ряда 3: 1

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив состоит ΠΈΠ· ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… массивов (a[0], a[1] and a[2]) , ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ length для опрСдСлСния Π΄Π»ΠΈΠ½Ρ‹ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ряда Π΄Π»ΠΈΠ½Ρ‹ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива Java.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Π²Ρ‹Π²ΠΎΠ΄ Π½Π° экран всСх элСмСнтов Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»ΠΎΠ² :

ВсСгда Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» for…each , ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ ΠΏΠΎ элСмСнтам массива. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ сортировки Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива Java ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° for…each ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠŸΡ€ΠΈ запускС этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ заполнСния Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива Java :

Как ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€Ρ‘Ρ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Π² Java?

Π’Ρ€Ρ‘Ρ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив инициализируСтся ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ:

Π’Ρ€Ρ‘Ρ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив β€” это массив, состоящий ΠΈΠ· Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов. Как ΠΈ Ρƒ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов Java , Π΅Π³ΠΎ ряды ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для Π²Ρ‹Π²ΠΎΠ΄Π° элСмСнтов Ρ‚Ρ€Ρ‘Ρ…ΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»ΠΎΠ² :

ΠŸΡ€ΠΈ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива Java ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Данная публикация прСдставляСт собой ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ Β« Java Multidimensional Arrays Β» , ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ Π΄Ρ€ΡƒΠΆΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ.Ρ€Ρƒ

Π’ любом языкС программирования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ массивы, ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с большим количСством ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ сотни ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ становится ΠΌΡƒΡ‚ΠΎΡ€Π½Ρ‹ΠΌ занятиСм. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ массив. Для наглядности ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ сСбС собранныС Π² ΠΎΠ΄ΠΈΠ½ ряд пустыС ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ. Π’ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΊΠΎΡ€ΠΎΠ±ΠΎΡ‡ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΠ². Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Π΄Π°ΠΆΠ΅ Π½Π΅ зная ΠΈΡ… ΠΏΠΎ ΠΈΠΌΠ΅Π½Π°ΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΠ°ΠΊΠΎΡ€ΠΌΠΈΡ‚ΡŒ ΠΊΠΎΡ‚Π° ΠΈΠ· 3 ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ. Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅ с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΠ°ΠΊΠΎΡ€ΠΌΠΈΡ‚ΡŒ Π Ρ‹ΠΆΠΈΠΊΠ°. ЧувствуСтС Ρ€Π°Π·Π½ΠΈΡ†Ρƒ? Π’Π°ΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΊΠΎΡ‚ΠΎΠ² ΠΏΠΎ ΠΈΠΌΠ΅Π½Π°ΠΌ, Π½ΠΎ Π²Ρ‹ всё Ρ€Π°Π²Π½ΠΎ смоТСтС ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ с Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ. Π—Π°Π²Ρ‚Ρ€Π° Π² этих ΠΊΠΎΡ€ΠΎΠ±ΠΊΠ°Ρ… ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΡ‚Ρ‹, Π½ΠΎ это Π½Π΅ составит для вас ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Π³Π»Π°Π²Π½ΠΎΠ΅ Π·Π½Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ называСтся индСксом.

Π•Ρ‰Π΅ Ρ€Π°Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΠΌ Ρ‚Π΅ΠΎΡ€ΠΈΡŽ. Массивом называСтся ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ΅ мноТСство ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. КаТдая пСрСмСнная Π² Π΄Π°Π½Π½ΠΎΠΌ массивС называСтся элСмСнтом массива. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡΠ»Π°Ρ‚ΡŒΡΡ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ элСмСнт Π² массивС Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ имя массива Π² соСдинСнии с Ρ†Π΅Π»Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΌ индСксом. ИндСкс ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ элСмСнта ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Ρ‡Π°Π»Π° массива. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ индСкс 0, Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ индСкс 1, Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉΒ β€” индСкс 2 ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π”Π°Π½Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ навязано ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π±Ρ‹Π»ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ отсчёт массивов с нуля.

ОбъявлСниС массива

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ массива ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобок:

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΈ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Π°Ρ запись:

Π—Π΄Π΅ΡΡŒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ послС ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π’ Ρ€Π°Π·Π½Ρ‹Ρ… языках программирования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ€Π°Π·Π½Ρ‹Π΅ способы, ΠΈ Java позволяСт Π²Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π²Ρ‹ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ. Но Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. Π‘Π°ΠΌΠΈ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки своим Π²ΠΈΠ΄ΠΎΠΌ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ, поэтому Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ просто Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ.

ΠœΡ‹ ΠΏΠΎΠΊΠ° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ объявили массив, Π½ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ Π΅Π³ΠΎ Π΅Ρ‰Ρ‘ Π½Π΅ сущСствуСт, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. ЀактичСски Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ массива Ρ€Π°Π²Π½ΠΎ null.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ массива

ПослС объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ массива, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ сам массив с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова new с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠ° ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. НапримСр, массив Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· 10 Ρ†Π΅Π»Ρ‹Ρ… чисСл:

МоТно ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ массив (Π² основном Ρ‚Π°ΠΊ ΠΈ Π΄Π΅Π»Π°ΡŽΡ‚):

Если массив создаётся Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‚ΠΎ всСм элСмСнтам массива автоматичСски ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. НапримСр, для числовых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ 0. Для массива Ρ‚ΠΈΠΏΠ° boolean Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ false, для массива Ρ‚ΠΈΠΏΠ° charΒ β€” ‘u0000’, для массива Ρ‚ΠΈΠΏΠ° класса (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹)Β β€” null.

ПослСднСС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡƒΡ‚Π°Ρ‚ΡŒ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π΅Π³ΠΎ программиста, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Π±ΡƒΠ΄Π΅Ρ‚, Ρ‡Ρ‚ΠΎ строка Ρ‚ΠΈΠΏΠ° String являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ. Если Π²Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅ массив ΠΈΠ· дСсяти ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… строк ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π’ΠΎ Ρƒ вас появятся строки со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ null, Π° Π½Π΅ пустыС строки, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ. Если ΠΆΠ΅ Π²Π°ΠΌ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄Π΅ΡΡΡ‚ΡŒ пустых строк, Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄:

Доступ ΠΊ элСмСнтам массива

ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ элСмСнту массива происходит ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ массива, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ индСкса элСмСнта, Π·Π°ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½ΠΎΠ³ΠΎ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки. НапримСр, Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт нашСго массива cats ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π½Π° cats[0], Π½Π° пятый элСмСнт ΠΊΠ°ΠΊ cats[4].

Π’ качСствС индСкса ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ числа ΠΈΠ»ΠΈ выраТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° int. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈ вычислСнии выраТСния с Ρ‚ΠΈΠΏΠΎΠΌ long, слСдуСт ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² int, ΠΈΠ½Π°Ρ‡Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ. Π‘ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ short ΠΈ byte ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡƒΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ int.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ массива

НС всСгда Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив собствСнными значСниями, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ, ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ количСство элСмСнтов. ВслСд Π·Π° объявлСниСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ массива Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π·Π½Π°ΠΊ равСнства, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт список Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ элСмСнтов, ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹ΠΉ Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки. Π’ этом случаС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово new Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ:

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

ΠœΠ°ΡΡΠΈΠ²Ρ‹ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π² Ρ†ΠΈΠΊΠ»Π°Ρ…. Допустим, 5 ΠΊΠΎΡ‚ΠΎΠ² ΠΎΡ‚Ρ‡ΠΈΡ‚Π°Π»ΠΈΡΡŒ ΠΏΠ΅Ρ€Π΅Π΄ Π²Π°ΠΌΠΈ ΠΎ количСствС ΠΏΠΎΠΉΠΌΠ°Π½Π½Ρ‹Ρ… ΠΌΡ‹ΡˆΠ΅ΠΊ. Как ΡƒΠ·Π½Π°Ρ‚ΡŒ срСднСС арифмСтичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

Массив содСрТит ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ length, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ (Π½ΠΎ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ). Оно позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ количСство элСмСнтов Π² массивС. Π”Π°Π½Π½ΠΎΠ΅ свойство ΡƒΠ΄ΠΎΠ±Π½ΠΎ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΠΎΡˆΠΈΠ±Ρ‘Ρ‚Π΅ΡΡŒ с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ массива. ПослСдний элСмСнт массива всСгда mice[mice.length — 1]. ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π»ΠΈΠ½Π° массива вычисляСтся автоматичСски, ΠΈ Ссли Π²Ρ‹ создадитС Π½ΠΎΠ²Ρ‹ΠΉ массив ΠΈΠ· ΡˆΠ΅ΡΡ‚ΠΈ ΠΊΠΎΡ‚ΠΎΠ², Ρ‚ΠΎ Π² Ρ†ΠΈΠΊΠ»Π΅ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π΅ придётся.

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ, Ρ‚ΠΎ вмСсто массива слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ списочный массив ArrayList. Π‘Π°ΠΌΠΈ массивы нСизмСняСмы.

Π‘ΡƒΠ΄ΡŒΡ‚Π΅ остороТны с ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ массивов. ΠœΠ°ΡΡΠΈΠ²Β β€” это Π½Π΅ числа, Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎ особому хранится Π² памяти. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π·Π°Π³Ρ€ΠΎΠΌΠΎΠΆΠ΄Π°Ρ‚ΡŒ вас ΡƒΠΌΠ½Ρ‹ΠΌΠΈ словами, Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠΊΠ°ΠΆΡƒ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

Допустим, Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½Π° пСрСмСнная, Π·Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ создали Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈ присвоили Π΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. А Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ ΠΈΡ….

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ с массивом.

ΠœΡ‹ скопировали ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ массив Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈ Π² Π½Π΅ΠΉ помСняли Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ элСмСнт. А ΠΊΠΎΠ³Π΄Π° стали ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ значСния Ρƒ ΠΎΠ±ΠΎΠΈΡ… массивов, Ρ‚ΠΎ оказалось, Ρ‡Ρ‚ΠΎ Ρƒ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ массива Ρ‚ΠΎΠΆΠ΅ помСнялось Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Но ΠΌΡ‹ ΠΆΠ΅ Π΅Π³ΠΎ Π½Π΅ Ρ‚Ρ€ΠΎΠ³Π°Π»ΠΈ! Магия. На самом Π΄Π΅Π»Π΅ Π½Π΅Ρ‚, просто массив остался ΠΏΡ€Π΅ΠΆΠ½ΠΈΠΌ ΠΈ вторая пСрСмСнная обращаСтся ΠΊ Π½Π΅ΠΌΡƒ ΠΆΠ΅, Π° Π½Π΅ создаёт Π²Ρ‚ΠΎΡ€ΡƒΡŽ копию. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΎΠ± этом.

Если ΠΆΠ΅ Π²Π°ΠΌ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½Π° копия массива, Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Arrays.copyOf()

Если ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹ΠΉΠ΄Π΅Ρ‚ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ индСкса массива, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° остановится с ошибкой Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ исполнСния ArrayOutOfBoundsException. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ частая ошибка Ρƒ программистов, провСряйтС свой ΠΊΠΎΠ΄.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°

Π₯Π²Π°Ρ‚ΠΈΡ‚ Π±ΠΎΠ»Ρ‚Π°Ρ‚ΡŒ. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ всС Π²Ρ‹ΡˆΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅.

НапишСм Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄:

ЗапуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρ‡Π΅Ρ‚Π²Ρ‘Ρ€Ρ‚ΠΎΠΌΡƒ элСмСнту массива cats[3] присвоСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ всС элСмСнты массива. Π”Π°Π»Π΅Π΅ присвойтС ΡˆΠ΅ΡΡ‚ΠΎΠΌΡƒ элСмСнту Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 7 ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ снова Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

Однако вСрнёмся ΠΊ нашСй ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅. Π£ всСх ΠΊΠΎΡ‚ΠΎΠ² Π΅ΡΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π°. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ массив ΠΈΠ· восьми строковых элСмСнтов ΠΈ обратимся ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· Π½ΠΈΡ…:

Π‘Π½ΠΎΠ²Π° запускайтС прилоТСния ΠΈ мСняйтС Π² послСднСй строчкС число, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

ΠŸΠ΅Ρ€Π΅Π±ΠΎΡ€ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ массива

ΠœΠ°ΡΡΠΈΠ²Ρ‹ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° всСх Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ способ Ρ‡Π΅Ρ€Π΅Π· Ρ†ΠΈΠΊΠ» for

Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΡƒΠΊΠΎΡ€ΠΎΡ‡Π΅Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ записи

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

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

Для создания ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ скобки:

Π’Π°ΠΊΠΆΠ΅ массив ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом new:

Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив

Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив — это массив ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив, Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°Ρ€Ρƒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобок:

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠΉΡ‚Π΅ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив ΠΊΠ°ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, Π³Π΄Π΅ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ скобки ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π·Π° ряды, Π° Π²Ρ‚ΠΎΡ€Ρ‹Π΅Β β€” Π·Π° ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π’ΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹ΡˆΠ΅ прСдставляСт собой Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘Ρ… рядов ΠΈ Ρ‚Ρ€Ρ‘Ρ… ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ.

1Π’Π°ΡΡŒΠΊΠ°121987102
2Π Ρ‹ΠΆΠΈΠΊ2819876107
3Барсик412345678
4ΠœΡƒΡ€Π·ΠΈΠΊ587654321

Для Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π²Π° Ρ†ΠΈΠΊΠ»Π° for, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ элСмСнты Π΄Π°Π½Π½Ρ‹ΠΌΠΈ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ ΠΈ свСрху Π²Π½ΠΈΠ·. НапишСм Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄:

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ сначала Π·Π°ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ снова ΠΏΡ€ΠΎΡˆΠ»ΠΈΡΡŒ ΠΏΠΎ этому массиву для считывания Π΄Π°Π½Π½Ρ‹Ρ….

ЛогичСскоС прСдставлСниС Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

[0, 0][0, 1][0, 2][0, 3]
[1, 0][1, 1][1, 2][1, 3]
[2, 0][2, 1][2, 2][2, 3]

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ число Π² скобках ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ ряд (строку), Π° Π²Ρ‚ΠΎΡ€ΠΎΠ΅ число — столбСц. ΠŸΡ€ΠΈΠ½ΡΡ‚ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² массивС new int[M][N] ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ количСство строк, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉΒ β€” количСство столбцов.

На экранС послС запуска ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

ΠŸΡ€ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ памяти ΠΏΠΎΠ΄ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ измСрСния. Для ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ особого смысла Π² этом Π½Π΅Ρ‚.

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° интСрСсная ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ создании массива связана с запятой. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

Π’Ρ€ΠΎΠ΄Π΅ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ лишняя запятая, Π½ΠΎ Π΅Ρ‘ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ ошибкС (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° запятая). Π­Ρ‚ΠΎ Π±Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π½Π°Π΄ΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ кусок массива Π² ΠΊΠΎΠ΄Π΅. ΠšΡΡ‚Π°Ρ‚ΠΈ, ΠΌΠ΅Ρ‚ΠΎΠ΄ deepToString() класса Arrays ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π΅Π½ для Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов.

Π§Ρ‚ΠΎΠ±Ρ‹ совсСм ΡΠ±ΠΈΡ‚ΡŒ вас с Ρ‚ΠΎΠ»ΠΊΡƒ, ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

Π― ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π», Ρ‡Ρ‚ΠΎ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ двумя способами. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ поставили скобки Ρƒ Ρ‚ΠΈΠΏΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π° ΠΏΠΎΡ‚ΠΎΠΌ Ρƒ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠŸΡ€ΠΈ этом ΠΌΡ‹ использовали Π² качСствС ΠΈΠΌΠ΅Π½ΠΈ имя класса Integer. Однако, Java догадываСтся, Ρ‡Ρ‚ΠΎ Π½Π° этот Ρ€Π°Π· ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π΅ класс, Π° имя ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ синтаксис. Но Π»ΡƒΡ‡ΡˆΠ΅ Ρ‚Π°ΠΊ Π½Π΅ Π²Ρ‹ΠΏΠ΅Π½Π΄Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ.

Π Π°Π·ΠΌΠ΅Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

Π Π°Π·ΠΌΠ΅Ρ€ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива измСряСтся интСрСсным способом. Π”Π»ΠΈΠ½Π° массива опрСдСляСтся ΠΏΠΎ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΉ размСрности, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ вычисляСтся количСство рядов.

А Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡƒΠ·Π½Π°Ρ‚ΡŒ количСство столбцов Π² ряду? Π’ΠΎΠ³Π΄Π° ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ ряд, Π° Π·Π°Ρ‚Π΅ΠΌ вычисляСтС Ρƒ Π½Π΅Π³ΠΎ количСство столбцов.

НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² массивах ряды ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠ΅ количСство столбцов.

Π‘Π»ΠΎΠΆΠΈΡ‚ΡŒ Π΄Π²Π° массива

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρƒ вас Π΅ΡΡ‚ΡŒ Π΄Π²Π° массива, ΠΈ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡ… ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠΉ массив.

ВмСсто Ρ‚ΠΈΠΏΠ° double Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹. Π’ΠΎΡ‚ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈΠΌΠ΅Ρ€ слоТСния Π΄Π²ΡƒΡ… строковых массивов:

Π’Π·ΡΡ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ массива

Аналогично, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Π·ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠ· большого массива, Ρ‚ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ:

Π—Π΄Π΅ΡΡŒ Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ вмСсто double. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования:

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠ°Ρ‚ΡŒ элСмСнты массива

Π‘Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠ°Ρ‚ΡŒ элСмСнты массива Π² случайном порядкС. Π’ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ Π½Π°ΡˆΡ‘Π» Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ Fisher-Yates (ΠΏΡ€ΠΈΠΌ.: FisherΒ β€” это Ρ€Ρ‹Π±Π°ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π»ΠΎΠ²ΠΈΡ‚ Ρ€Ρ‹Π±Ρƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΡ‚)

Подводим ΠΈΡ‚ΠΎΠ³ΠΈ

ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива фиксируСтся ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π½Π° протяТСнии Π΅Π³ΠΎ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ, Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ArrayList, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ способСн автоматичСски Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ пространство, выдСляя Π½ΠΎΠ²Ρ‹ΠΉ Π±Π»ΠΎΠΊ памяти ΠΈ пСрСмСщая Π² Π½Π΅Π³ΠΎ ссылки ΠΈΠ· старого.

ΠŸΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρƒ массива происходит ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ RuntimeException, ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΎΠ± ошибкС программиста.

ΠœΠ΅Ρ‚ΠΎΠ΄ arraycopy()Β β€” ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ массива

Бтандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Java содСрТит статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ System.arraycopy(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ массивы Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ быстрСС, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈ Ρ€ΡƒΡ‡Π½ΠΎΠΌ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π² Ρ†ΠΈΠΊΠ»Π΅ for.

Π’ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… arraycopy() пСрСдаётся исходный массив, Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ позиция копирования Π² исходном массивС, ΠΏΡ€ΠΈΡ‘ΠΌΠ½Ρ‹ΠΉ массив, Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ позиция копирования Π² ΠΏΡ€ΠΈΡ‘ΠΌΠ½ΠΎΠΌ массивС ΠΈ количСство ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… элСмСнтов. Π›ΡŽΠ±ΠΎΠ΅ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ Π³Ρ€Π°Π½ΠΈΡ† массива ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Avi Yehuda написал ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая вычисляСт врСмя Π½Π° ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° for ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° arraycopy() Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ с ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠΌ элСмСнтов. Π ΡƒΡ‡Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρƒ Π½Π΅Π³ΠΎ заняло 182 мс, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° arraycopy()Β β€” 12 мс. Π Π°Π·Π½ΠΈΡ†Π° колоссальна.

Поиск элСмСнтов строкового массива ΠΏΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ символам

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

Π’Π΅Ρ€Π½Ρ‘Ρ‚ списочный массив ΠΈΠ· Π΄Π²ΡƒΡ… элСмСнтов: ΠœΡƒΡ€Π·ΠΈΠΊ ΠΈ ΠœΡƒΡ€ΠΊΠ°.

Класс Arrays

Класс java.util.Arrays ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивами. Он содСрТит ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ†Π΅Π»Ρ‹ΠΌΠΈ массивами:

  • copyOf()Β β€” ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для копирования массива
  • copyOfRange()Β β€” ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‡Π°ΡΡ‚ΡŒ массива
  • toString()Β β€” позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ всС элСмСнты Π² Π²ΠΈΠ΄Π΅ ΠΎΠ΄Π½ΠΎΠΉ строки
  • sort() β€” сортируСт массив ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ quick sort
  • binarySearch()Β β€” ΠΈΡ‰Π΅Ρ‚ элСмСнт ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ поиска
  • fill()Β β€” заполняСт массив ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ (ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ссли Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для массива)
  • equals()Β β€” провСряСт Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ массивы
  • deepEquals()Β β€” провСряСт Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ массивы массивов
  • asList()Β β€” Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив ΠΊΠ°ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° массива

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° (упорядочСниС ΠΏΠΎ значСниям) массива a производится ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ Arrays. sort(a) ΠΈ Arrays.sort(a, index1, index2). ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ упорядочиваСт Π² порядкС возрастания вСсь массив, Π²Ρ‚ΠΎΡ€ΠΎΠΉ β€” Ρ‡Π°ΡΡ‚ΡŒ элСмСнтов (ΠΎΡ‚ индСкса index1 Π΄ΠΎ индСкса index2). Π˜ΠΌΠ΅ΡŽΡ‚ΡΡ ΠΈ Π±ΠΎΠ»Π΅Π΅ слоТныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ сортировки. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ массива Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ сравниваСмы (ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ сравнСния).

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€
Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° массива для ArrayAdapter

ΠœΠ°ΡΡΠΈΠ²Ρ‹ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π°Ρ… для заполнСния Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Spinner, ListView ΠΈ Ρ‚.ΠΏ.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρƒ вас Π΅ΡΡ‚ΡŒ массив строк ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ‚Π΄Π°Ρ‡Π΅ΠΉ массива Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Ρƒ ArrayAdapter. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ вывСсти строки Π² упорядочСнном Π²ΠΈΠ΄Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ListView:

Π£ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° sort() Π΅ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ вСрсии, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ массива, Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ слСдуСт произвСсти сортировку.

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

ΠœΠ΅Ρ‚ΠΎΠ΄ Arrays.copyOf(ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ_массив, новая_Π΄Π»ΠΈΠ½Π°) β€” Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив-копию Π½ΠΎΠ²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹. Если новая Π΄Π»ΠΈΠ½Π° мСньшС ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ, Ρ‚ΠΎ массив усСкаСтся Π΄ΠΎ этой Π΄Π»ΠΈΠ½Ρ‹, Π° Ссли большС, Ρ‚ΠΎ дополняСтся нулями.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ массив останСтся Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π° со Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ массивом Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅. Π‘ΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

МоТно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½Π½ΡƒΡŽ копию, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ всС значСния ΠΈΠ· малСнького массива, Π° ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ мСста Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ значСниями, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, нулями.

ΠœΠ΅Ρ‚ΠΎΠ΄ Arrays.copyOfRange(ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ_массив, Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ_индСкс, ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ_индСкс) β€” Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив-копию Π½ΠΎΠ²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹, ΠΏΡ€ΠΈ этом копируСтся Ρ‡Π°ΡΡ‚ΡŒ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ массива ΠΎΡ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ индСкса Π΄ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ βˆ’1.

ΠœΠ΅Ρ‚ΠΎΠ΄ Arrays.toString()

Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° toString() нСпосрСдствСнно Ρƒ массива, Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ нСпонятноС ΠΈ Π½Π΅Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠ΅.

ΠœΠ΅Ρ‚ΠΎΠ΄ Arrays.toString(массив) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ строковоС прСдставлСниС массива со строковым прСдставлСниСм элСмСнтов, Π·Π°ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹Ρ… Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π²Ρ‹ΡˆΠ΅ ΠΌΡ‹ ΡƒΠΆΠ΅ Π²Ρ‹Π·Ρ‹Π²Π°Π»ΠΈ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄.

ΠœΠ΅Ρ‚ΠΎΠ΄ deepToString() ΡƒΠ΄ΠΎΠ±Π΅Π½ для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΆΠ΅ использовали Π²Ρ‹ΡˆΠ΅.

ΠœΠ΅Ρ‚ΠΎΠ΄ Arrays.

fill()Β β€” Π½Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ массива ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ

ΠœΠ΅Ρ‚ΠΎΠ΄ Arrays.fill() позволяСт быстро Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ массив ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ значСниями. Π£ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π΅ΡΡ‚ΡŒ Π²ΠΎΡΠ΅ΠΌΠ½Π°Π΄Ρ†Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… вСрсий для Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

ΠœΠ΅Ρ‚ΠΎΠ΄ fill() просто Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ элСмСнтС массива (Π² случаС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ΄Π½Ρƒ ссылку Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт):

Запустив ΠΊΠΎΠ΄, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π½Π° экранС ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ выводятся значСния:

МоТно Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Π½ΡƒΠΆΠ½ΠΎΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π΅ Π·Π° Π΄Π²Π° ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π°:

Π‘Π½Π°Ρ‡Π°Π»Π° массив заполнится ΠΌΡΡƒΠΊΠ°Π½ΡŒΠ΅ΠΌ ΠΊΠΎΡ‚Π° 4 Ρ€Π°Π·Π°, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π½Π° Ρ‚Ρ€Π΅Ρ‚ΡŒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ слово Π“Π°Π²!:

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΌΠ΅Ρ‚ΠΎΠ΄ заполняСт вСсь массив, Π»ΠΈΠ±ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π΅Π³ΠΎ элСмСнтов. Но ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹Π΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ слишком интСрСсны для ΠΎΠΏΡ‹Ρ‚ΠΎΠ², Π½ΠΎ пригодятся для быстрых экспСримСнтов.

ΠœΠ΅Ρ‚ΠΎΠ΄ equals()Β β€” сравнСниС массивов

Класс Arrays содСрТит ΠΌΠ΅Ρ‚ΠΎΠ΄ equals() для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° равСнство Ρ†Π΅Π»Ρ‹Ρ… массивов. Π§Ρ‚ΠΎΠ±Ρ‹ Π΄Π²Π° массива ΡΡ‡ΠΈΡ‚Π°Π»ΠΈΡΡŒ Ρ€Π°Π²Π½Ρ‹ΠΌΠΈ, ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ количСство элСмСнтов, ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ эквивалСнтСн ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ элСмСнту Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ массива.

НапишСм ΠΊΠΎΠ΄ Π² своСй ΡƒΡ‡Π΅Π±Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

ΠœΡ‹ создали Π΄Π²Π° массива ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ ΠΈΡ… ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ числами. ΠŸΡ€ΠΈ сравнСнии ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ true. Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π² ΠΊΠΎΠ΄ строчку ΠΊΠΎΠ΄Π°, которая Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ ΠΎΠ΄ΠΈΠ½ элСмСнт Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ массивС:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈ сравнСнии Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒΡΡ false.

Π—Π°Π΄Π°Ρ‡ΠΈ

Π Π΅ΡˆΠΈΡ‚Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ. ΠžΡ‚Π²Π΅Ρ‚Ρ‹ доступны зарСгистрированным ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ.

Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ массив ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘Ρ… чисСл int[] numbers = <3, 9, 11, 15>;. ΠŸΠΎΠΌΠ΅Π½ΡΠΉΡ‚Π΅ мСстами ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт массива. (ΠžΡ‚Π²Π΅Ρ‚)

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ массив ΠΈΠ· всСх Ρ‡Ρ‘Ρ‚Π½Ρ‹Ρ… чисСл ΠΎΡ‚ 2 Π΄ΠΎ 30 ΠΈ Π²Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ элСмСнты массива Π½Π° экран.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ массив ΠΈΠ· всСх Π½Π΅Ρ‡Ρ‘Ρ‚Π½Ρ‹Ρ… чисСл ΠΎΡ‚ 1 Π΄ΠΎ 99, Π²Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π½Π° экран Π² строку, Π° Π·Π°Ρ‚Π΅ΠΌ этот ΠΆΠ΅ массив Π²Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ Π½Π° экран Ρ‚ΠΎΠΆΠ΅ Π² строку, Π½ΠΎ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС (99 97 95 93 … 7 5 3 1).

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ массив ΠΈΠ· 20-Ρ‚ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… чисСл Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ ΠΈ Π²Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π½Π° экран. НапоминаСм, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ‡Π»Π΅Π½Ρ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ€Π°Π²Π½Ρ‹ Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌ, Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ β€” суммС Π΄Π²ΡƒΡ… ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ….

Найти максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· массива

Π—Π°Π΄Π°Ρ‡Π°: Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ статистика, сколько ΠΌΡ‹ΡˆΠ΅ΠΉ ΠΏΠΎΠΉΠΌΠ°Π» ΠΊΠΎΡ‚ Барсик Π·Π° Π³ΠΎΠ΄ ΠΏΠΎ мСсяцам Π² Π²ΠΈΠ΄Π΅ массива:

ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ getMax(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вычисляСт максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· массива. Ну ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ getMin() для нахоТдСния минимального значСния.

Найти Ρ‚Ρ€ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»ΡŒΡˆΠΈΡ… числа ΠΈΠ· массива

ΠŸΠΎΡ…ΠΎΠΆΠ°Ρ Π·Π°Π΄Π°Ρ‡Π°Β β€” Π½Π°ΠΉΡ‚ΠΈ Ρ‚Ρ€ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»ΡŒΡˆΠΈΡ… числа ΠΈΠ· массива mice (прСдыдущая Π·Π°Π΄Π°Ρ‡Π°).

ΠŸΠ΅Ρ€Π΅ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° элСмСнтов массива Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС

Π—Π°Π΄Π°Ρ‡Π°: Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ массив, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ элСмСнты массива Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС.

ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π½ΡƒΠ»ΠΈ Π² ΠΊΠΎΠ½Π΅Ρ† массива

Π”Π°Π½ массив с числами 5, 4, 3, 0, 6, 0, 0, 5, 6, 0, 25, 0, 8, 7, 3, 0, 1, 1, 0, 6, 4. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ всС Π½ΡƒΠ»ΠΈ Π² ΠΊΠΎΠ½Π΅Ρ† массива.

ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π½ΡƒΠ»ΠΈ Π² Π½Π°Ρ‡Π°Π»ΠΎ массива

Π”Π°Π½ массив с числами 5, 4, 3, 0, 6, 0, 0, 5, 6, 0, 25, 0, 8, 7, 3, 0, 1, 1, 0, 6, 4. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ всС Π½ΡƒΠ»ΠΈ Π² Π½Π°Ρ‡Π°Π»ΠΎ массива.

Найти индСкс числа ΠΈΠ· массива

Π•ΡΡ‚ΡŒ массив, Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ индСкс числа, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² этот массив.

Π’ ΡƒΡ€ΠΎΠΊΠ΅ 10 ΠΌΡ‹ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π² Java ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ, Ρ‚Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ, чСтырСхмСрный… ΠΈΠ½Π°Ρ‡Π΅ говоря, ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы. ΠœΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Π² Java ΠΏΠΎ сути являСтся массивом ΠΈΠ· массивов.

ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ использования Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° массивов, ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, для прСдставлСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы. Π˜Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠΈ ΠΊΠ°ΠΊ Π΅Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива Π² Java.

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы Π² Java

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° это ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π°, состоящая ΠΈΠ· строк ΠΈ столбцов Π½Π° пСрСсСчСнии ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… находятся Π΅Ρ‘ элСмСнты. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ строк ΠΈ столбцов ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π·Π°Π΄Π°ΡŽΡ‚ Π΅Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€.

ΠžΠ±Ρ‰ΠΈΠΉ Π²ΠΈΠ΄ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ m x n ( m β€” количСство строк, n β€” количСство столбцов), выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚ свой индСкс, Π³Π΄Π΅ пСрвая Ρ†ΠΈΡ„Ρ€Π° ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ строки Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ находится элСмСнт, Π° вторая β€” Π½ΠΎΠΌΠ΅Ρ€ столбца.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΈ создадим ΠΈΡ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Java.

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° A ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ 2 Π½Π° 3 (2 строки, 3 столбца). Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив этой размСрности:

ΠœΡ‹ объявили Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Ρ†Π΅Π»Ρ‹Ρ… чисСл (ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Π² Π΄Π°Π½Π½ΠΎΠΌ случаС содСрТит Ρ†Π΅Π»Ρ‹Π΅ числа) ΠΈ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ для Π½Π΅Π³ΠΎ ΠΏΠ°ΠΌΡΡ‚ΡŒ. Для этого ΠΌΡ‹ использовали 2 индСкса: ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ индСкс опрСдСляСт строку ΠΈ Π΅Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€, Π²Ρ‚ΠΎΡ€ΠΎΠΉ индСкс опрСдСляСт столбСц ΠΈ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€.

Π”Π°Π»Π΅Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив поэлСмСнтно. Π—Π°ΠΏΠΈΡˆΠ΅ΠΌ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ A Π² Π²ΠΈΠ΄Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ понятно, ΠΊΠ°ΠΊΠΎΠΌΡƒ индСксу соотвСтствуСт элСмСнт.

Для доступа ΠΊ элСмСнтам Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ 2 индСкса: ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ для строки, Π²Ρ‚ΠΎΡ€ΠΎΠΉΒ β€” для столбца. Как ΠΈ Π² случаС с ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ массивами, индСксы Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с нуля. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ нумСрация строк ΠΈ столбцов Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ начинаСтся с 0.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ вывСсти ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π½Π° консоль, Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ всС элСмСнты, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΄Π²Π° Ρ†ΠΈΠΊΠ»Π°. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Ρ†ΠΈΠΊΠ»ΠΎΠ², ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ элСмСнтов массива, Ρ€Π°Π²Π½ΠΎ Π΅Π³ΠΎ размСрности. Π’ нашСм случаС ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» осущСствляСтся ΠΏΠΎ строкам, Π²Ρ‚ΠΎΡ€ΠΎΠΉ β€” ΠΏΠΎ столбцам.

Π’ΠΎ Π΅ΡΡ‚ΡŒ, сначала Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ всС элСмСнты ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки, отдСляя ΠΈΡ… символом табуляции » «, пСрСносим строку ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ всС элСмСнты Π²Ρ‚ΠΎΡ€ΠΎΠΉ строки.

ΠŸΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ΄ для ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ А выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Для ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ B Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹ΠΌ способом ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ β€” Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ объявлСния. По Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ массивами.

ΠšΠ°ΠΆΠ΄ΡƒΡŽ строку массива Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² ΠΏΠ°Ρ€Ρƒ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок ΠΈ ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° запятой.

ΠŸΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ΄ для ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ B:

Рассмотрим ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π² Ρ†ΠΈΠΊΠ»Π΅ для Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ умноТСния.

Π—Π΄Π΅ΡΡŒ инициализация элСмСнтов значСниями Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ умноТСния совмСщСна с ΠΈΡ… Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ Π½Π° консоль Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅.

ΠœΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ ΠΈ нСсиммСтричныС массивы.

Π‘ΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы Π² Java Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ способом. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобок ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ.
ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ создания массивов фиксированной Π΄Π»ΠΈΠ½Ρ‹:

Однако, Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° всСх уровнях, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅.

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС, ΠΏΠΎΠΊΠ° нСизвСстно сколько Π±ΡƒΠ΄Π΅Ρ‚ элСмСнтов Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС, это ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ, массив ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС Ρ€Π°Π·Π½ΠΎΠ΅ количСство элСмСнтов, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π±Ρ‹Ρ‚ΡŒ нСсиммСтричным. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ количСство элСмСнтов Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС для массива a1

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ Π½Π° экран,

массив Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ Π²ΠΈΠ΄:

0
0 0
0 0 0
0 0 0 0
0 0 0 0 0

ΠŸΡ€ΠΈ создании массива Π΅Π³ΠΎ элСмСнты автоматичСски ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ нулями, поэтому Π² это ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½Π° экран Π²Ρ‹Π²Π΅Π΄Π΅Π½Ρ‹ Π½ΡƒΠ»ΠΈ.

ΠœΠ΅Ρ‚ΠΊΠΈ: Β 

НАШ БАЙВ Π Π•ΠšΠžΠœΠ•ΠΠ”Π£Π•Π’:

Π—Π°Π΄Π°Ρ‡ΠΈ Π½Π° массивы java

ΠžΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ программирования основаны Π½Π° ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ†Π΅Π»Ρ‹ΠΌΠΈ коллСкциями Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ ΠΏΠΎΠ΄Ρ€Π°ΡƒΠΌΠ΅Π²Π°ΡŽΡ‚ свободноС Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ массивов Π² JavaScript. Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² являСтся Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ способом достиТСния ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ уровня мастСрства Π² JavaScript.

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

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ copyArr(arr) , которая ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ массив Π½Π΅ измСняя ΠΈΡ€ΠΈΠ³ΠΈΠ½Π°Π».

2. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ массива Π² строку

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ всС элСмСнты массива Π² ΠΎΠ΄Π½ΠΎ строковоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ массива Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ запятой. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ двумя Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ.

3. Π”Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½Π΅Ρ‡Ρ‘Ρ‚Π½Ρ‹ΠΌΠΈ числами

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠ΅ число Ρ‡Π΅Ρ€Π΅Π· promt . ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ colonOdd(num), которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ число num Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ вставляСт Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ (:) ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Π½Π΅Ρ‡Π΅Ρ‚Π½Ρ‹ΠΌΠΈ числами. НапримСр, Ссли вводится число 55639217, Ρ‚ΠΎ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ 5:563:921:7.

4. Π—Π°ΠΌΠ΅Π½Π° рСгистра символов

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ строку ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π΅ΠΉ Ρ€Π°Π·Π½ΠΎΠ³ΠΎ рСгистра. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ строку Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ замСняСт рСгистр ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ символа Π½Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Ρ‹ΠΉ. НапримСр, Ссли вводится Β«ΠšΠ°Π–Π΄Π«ΠΉ ΠžΡ…ΠžΡ‚ΠΠΈΠšΒ» , Ρ‚ΠΎ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ массив [кАТДыЙ ΠΎΠ₯оВнИк] .

5. Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ элСмСнты массива

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ removeDuplicates(arr) , которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ элСмСнты ΠΈΠ· массива arr (ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊ рСгистру).

6. НайдитС високосныС Π³ΠΎΠ΄Ρ‹

Високосным Π³ΠΎΠ΄ΠΎΠΌ являСтся ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹ΠΉ Π³ΠΎΠ΄ ΠΈ Π²Π΅ΠΊΠ° Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° высокостныС Π³ΠΎΠ΄Π°, ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ високосного Π³ΠΎΠ΄Π° ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² появлСнии 366-Π³ΠΎ дня. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ chooseYears(start, end) , которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π΄ΠΈΠ°ΠΏΠΎΠ·ΠΎΠ½ Π»Π΅Ρ‚ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив високосных Π»Π΅Ρ‚ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅.

7. ΠžΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ элСмСнты Π² случайном порядокС

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ sort ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡˆΠΈΡ‚Π΅ прСдсталСнный Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° for случайно измСняСт порядок расстановки элСмСнтов массива.

8. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ элСмСнты массива

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ getFirst(array, n) , которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ массива, содСрТащий ΠΏΠ΅Ρ€Π²Ρ‹Π΅ β€˜n’ элСмСнтов массива.

9. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ послСдниС элСмСнты массива

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ getLast(array, n) , которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ массива, содСрТащий послСдниС β€˜n’ элСмСнтов массива.

10. Π‘ΡƒΠΌΠΌΠ° элСмСнтов Π΄Π²ΡƒΡ… массивов

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаёт массив элСмСнтов ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… собой сумму ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… элСмСнтов Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… массивов.

11. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ элСмСнтов Π² массивС

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ countIdentic(arr) , которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ элСмСнтов Π² массивС.

12. Π Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ массива массивов

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ expand(arr) , которая Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ массив любой Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹.

13. ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΄Π²Π° массива Π±Π΅Π· дублирования элСмСнтов

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ union , которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив состоящий Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ массива.

14. Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ двумя массивами

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ union , которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив, содСрТащий всС элСмСнты arr1, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ находятся Π² arr2 ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

15. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° массива ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ compareNumbers(arr) , которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив, элСмСнты ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ отсортированы ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

16. НаиболСС часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ элСмСнт массива

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ элСмСнт массива.

17. Π‘ΡƒΠΌΠΌΠ° ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ массива

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ sumOfSquares(arr) , которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ сумму ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ массива.

18. Π‘ΡƒΠΌΠΌΠ° ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ массива

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт сумму ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ массива.

19. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΠΆΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ· массива

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ filterFalse(arr) , которая ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ массив ΠΎΡ‚ Π»ΠΎΠΆΠ½Ρ‹Ρ… (false) Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: false, null, undefined, 0, –0, NaN ΠΈ «» (пустя строка).

20. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° массива ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отсортируСт массив ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² litmir ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ свойства title .

21. Найти ΠΏΠ°Ρ€Ρ‹ чисСл, сумма ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π²Π½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ findCouple(array, number) , которая ΠΈΡ‰Π΅Ρ‚ Π² массивС всС ΠΏΠ°Ρ€Ρ‹ Ρ†Π΅Π»Ρ‹Ρ… чисСл, сумма ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π²Π½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ.

22. Найти всС значСния Π΄Π°Π½Π½ΠΎΠ³ΠΎ свойства Π² массивС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ propertyValue(array, key) , которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² массив ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ имя свойства, Π° Π·Π°Ρ‚Π΅ΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ всС значСния Π΄Π°Π½Π½ΠΎΠ³ΠΎ свойства ΠΈΠ· массива ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

23. ΠžΠ±Ρ‰Π°Ρ стартовая подстрока Π² массивС строк

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ startingSubstring(arr) , которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±Ρ‰ΡƒΡŽ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ подстроку Π² массивС строк.

24. Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ элСмСнт ΠΈΠ· массива

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ removeItem(arr, num) , которая удаляСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ элСмСнт ΠΈΠ· массива.

25. Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒ случайный элСмСнт ΠΈΠ· массива

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ randomElement(arr) , которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ случайный элСмСнт ΠΈΠ· массива.

26. Массив с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ количСством элСмСнтов

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ arrayFilled(len, value) , которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ количСством len элСмСнтов value .

27. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ элСмСнт массива ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ moveElement(arr,from,to) , которая позволяСт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ элСмСнт массива ΠΈΠ· ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ from Π² ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ to .

28. Массив ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ generateNumbers(start, len) , которая Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ массив Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ len , Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ число большС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ.

29. Массив, содСрТащий всС Ρ†Π΅Π»Ρ‹Π΅ числа ΠΌΠ΅ΠΆΠ΄Ρƒ start ΠΈ end

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ generateRange(start, end) , которая Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ массив Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ len , Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами. КаТдоС ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ число Π² массивС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ большС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ.

30.

Массив Π΄Π»ΠΈΠ½ строковых элСмСнтов

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ map() Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΈΠ· массива строк Π½ΠΎΠ²Ρ‹ΠΉ массив, содСрТащий ΠΈΡ… Π΄Π»ΠΈΠ½Ρ‹.

31. Массив сумм чисСл

Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ массив простых чисСл: numbers = [2, 3, 5, 7, 11, 13, 17, 19]. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ reduce() Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ currentSums(numbers), которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ массив ΠΈΠ· Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΆΠ΅ числа элСмСнтов, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ сумма элСмСнтов массива numbers Π΄ΠΎ этой ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ.

32. Π Π°Π²Π½Ρ‹Π΅ Π² суммС ΠΏΠ°Ρ€Ρ‹ чисСл

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΈΠ· массива чисСл Π½ΠΎΠ²Ρ‹ΠΉ массив, содСрТащий ΠΏΠ°Ρ€Ρ‹ чисСл, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² суммС Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½Ρ‹ сСми: (0:7), (1:6) ΠΈ Ρ‚.Π΄.

33. Массив ΠΈΠ· ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π±ΡƒΠΊΠ²

ΠŸΠ΅Ρ€Π΅Π΄ Π²Π°ΠΌΠΈ пСрСмСнная, содСрТащая строку. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ΄, создащий массив, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π±ΡƒΠΊΠ² слов строки str. ΠŸΡ€ΠΈ написании Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, позаимствуйтС Ρƒ объСка Array ΠΌΠ΅Ρ‚ΠΎΠ΄ filter.

34. Массив строк ΠΏΠΎ Ρ‚Ρ€ΠΈ символа

ΠŸΠ΅Ρ€Π΅Π΄ Π²Π°ΠΌΠΈ пСрСмСнная, содСрТащая строку. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ΄, создащий массив, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· строк, состоящих ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ, Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ символа строки str. ΠŸΡ€ΠΈ написании Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, позаимствуйтС Ρƒ объСка Array ΠΌΠ΅Ρ‚ΠΎΠ΄ map.

35. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ массив Ρ†ΠΈΡ„Ρ€ ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ΄, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰ΠΈΠΉ массив Ρ†ΠΈΡ„Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ нСупорядочСнно, Π² массив Ρ†ΠΈΡ„Ρ€ располоТСнных ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

36. БлияниС массивов

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ΄, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰ΠΈΠΉ Ρ‚Ρ€ΠΈ массива Ρ†ΠΈΡ„Ρ€, ΠΈ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‰ΠΈΠΉ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° pop(), Ρ†ΠΈΡ„Ρ€Ρ‹ Π² ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΌ массивС Π² порядкС убывания ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π».

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ Java β€” для курсов ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ… занятий

НСсколько Π²Π²ΠΎΠ΄Π½Ρ‹Ρ… слов

ПослСдниС нСсколько Π»Π΅Ρ‚ я Ρ‡ΠΈΡ‚Π°ΡŽ курс ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° Java. Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΎΠ½ мСнялся β€” Ρ‚ΠΎ добавлялись, Ρ‚ΠΎ Π²Ρ‹ΠΊΠΈΠ΄Ρ‹Π²Π°Π»ΠΈΡΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ части, мСнялась ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ‚Π΅ΠΌ, мСнялся ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΡŽ ΠΏΠ»Π°Π½Π° самих занятий, ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π’ΠΎ Π΅ΡΡ‚ΡŒ, курс ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π»ΡΡ. Одной ΠΈΠ· основных ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π²ΠΎΠ·Π½ΠΈΠΊΡˆΠΈΡ… ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ΅ курса β€” это Π·Π°Π΄Π°Ρ‡ΠΈ. О Π½ΠΈΡ… ΠΈ ΠΏΠΎΠΉΠ΄Ρ‘Ρ‚ Ρ€Π΅Ρ‡ΡŒ.

Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΌΠΎΡ‘ занятиС состоит ΠΈΠ· Π΄Π²ΡƒΡ… частСй. На ΠΏΠ΅Ρ€Π²ΠΎΠΉ я Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽ Π² Ρ€ΠΎΠ»ΠΈ Π»Π΅ΠΊΡ‚ΠΎΡ€Π° β€” Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°ΡŽ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΊΠΎΠ΄Π° ΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠΉ Ρ‚Π΅ΠΌΠ΅ (классы, наслСдованиС, Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΈ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅). Вторая Ρ‡Π°ΡΡ‚ΡŒ β€” практичСская. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ смысла просто Ρ€Π°ΡΡΡƒΠΆΠ΄Π°Ρ‚ΡŒ ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, Π½Π°Π΄ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π½Π° занятиях β€” Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ ΠΊΠ°ΠΊ-Ρ‚ΠΎ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° занятиях отличаСтся ΠΎΡ‚ программирования Π΄ΠΎΠΌΠ°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π° занятиях ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ вопрос, ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ ΠΎΡ†Π΅Π½ΠΊΡƒ ΠΊΠΎΠ΄Π°, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΏΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡŽ, ΠΈΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ написанного. ΠžΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ Π±Ρ‹Π»ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ для самых ΠΏΠ΅Ρ€Π²Ρ‹Ρ… занятий. Π—Π°Π΄Π°Ρ‡ΠΈ Π½Π° Ρ†ΠΈΠΊΠ»Ρ‹, условныС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΈ ООП (ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ класс Β«Π‘ΠΎΠ±Π°ΠΊΠ°Β» ΠΈΠ»ΠΈ класс Β«Π’Π΅ΠΊΡ‚ΠΎΡ€Β»). БСрвисы Π²Ρ€ΠΎΠ΄Π΅ leetcode ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‚Π°ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡ сразу, ΠΎΠ½Π»Π°ΠΉΠ½. Но ΠΊΠ°ΠΊΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π΄Π°Ρ‚ΡŒ студСнтам Π½Π° занятии, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±Ρ‹Π»ΠΎ посвящСно коллСкциям? ΠŸΠΎΡ‚ΠΎΠΊΠ°ΠΌ? А аннотациям? Π—Π° нСсколько Π»Π΅Ρ‚ я ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π», ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π» нСсколько Ρ‚Π°ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡, ΠΈ эта ΡΡ‚Π°Ρ‚ΡŒΡ, ΠΏΠΎ сути, являСтся сборником этих Π·Π°Π΄Π°Ρ‡ (ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π·Π°Π΄Π°Ρ‡Π°ΠΌ прилагаСтся Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅).

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, всС Π·Π°Π΄Π°Ρ‡ΠΈ ΡƒΠΆΠ΅ Π³Π΄Π΅-Ρ‚ΠΎ появлялись. Однако, эта ΡΡ‚Π°Ρ‚ΡŒΡ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° Π½Π° ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»Π΅ΠΉ курсов ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ (для языков, ΠΏΠΎΡ…ΠΎΠΆΠΈΡ… Π½Π° Java, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π·Π°Π΄Π°Ρ‡ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚), ΠΈΠ»ΠΈ Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Ρ‘Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ частным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π­Ρ‚ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Β«ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈΒ» Π½Π° своих занятиях. Π˜Π·ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠ΅ Java Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΈΡ…. Но Ρ‚Π°ΠΊΠΈΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ стороннСй ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ ΠΎΡ†Π΅Π½ΠΊΠΈ.

НСкоторыС самыС простыС Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ дСсятилСтия всС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚, я Ρ‚ΠΎΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ» Π² эту ΡΡ‚Π°Ρ‚ΡŒΡŽ. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉ, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ сразу с абстрактных классов.

1. ОбъявлСниС массива в Java

ΠžΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы Π² Java ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой список ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив, Π½ΡƒΠΆΠ½ΠΎ сначала ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ массива Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.

ΠžΠ±Ρ‰Π°Ρ Ρ„ΠΎΡ€ΠΌΠ° объявлСния ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π³Π΄Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ‚ΠΈΠΏ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‚ΠΈΠΏ элСмСнта массива, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ.

ΠšΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ послС Π½Π΅Π΅. Но Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ считаСтся ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ скобок ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ – Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Ρ‚ΠΈΠΏ ΠΈ скобки находятся Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС, Ρ‡Ρ‚ΠΎ позволяСт с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ взгляда ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Π²Π°ΠΌΠΈ массив Ρ‚Π°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ Ρ‚ΠΈΠΏΠ°:

2. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ массива с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова new

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

Массив ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ объявлСн ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ ΠΎΠ΄Π½ΠΎΠΉ строкой:

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ объявлСния массива Ρ‚ΠΈΠΏΠ° int Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 12 Π½Π° Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. ПослС выполнСния строки int[] monthDays = new int[12] массив ΠΈΠ· 12 элСмСнтов создан. ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Для Ρ‚ΠΈΠΏΠ° int это ноль. Для обращСния ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ элСмСнту массива послС ΠΈΠΌΠ΅Π½ΠΈ массива Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобочках Π·Π°Π΄Π°Π΅ΠΌ индСкс элСмСнта. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ элСмСнту массива для измСнСния ΠΈΠ»ΠΈ получСния Π΅Π³ΠΎ значСния:

3.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ массива с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±Π»ΠΎΠΊΠ° для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

Если Π·Π°Ρ€Π°Π½Π΅Π΅ извСстны значСния для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта массива, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ массива. ВмСсто new int[12] , Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобках Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ значСния элСмСнтов массива. Π Π°Π·ΠΌΠ΅Ρ€ массива выводится компилятором ΠΈΠ· количСства ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… элСмСнтов:

4. БСзымянный массив

БущСствуСт Π΅Ρ‰Π΅ ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΡ Ρ„ΠΎΡ€ΠΌΠ° объявлСния массива – бСзымянный массив. Он ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Π΄Π²ΡƒΡ… случаях.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ – Π²Ρ‹ объявили ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ массив testScores Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅, Π½ΠΎ ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ – ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚Ρ€ΠΈ элСмСнта. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Ρ„ΠΎΡ€ΠΌΡƒ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ массива нСльзя – Π±ΡƒΠ΄Π΅Ρ‚ ошибка компиляции:

Но ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ бСзымянный массив, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаст Π½ΠΎΠ²Ρ‹ΠΉ массив Π² памяти. Π€ΠΎΡ€ΠΌΠ° написания бСзымянного массива – это микс ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π΄Π²ΡƒΡ…:

Π’Ρ‚ΠΎΡ€ΠΎΠΉ случай использования бСзымянного массива – это ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° массива Π² ΠΌΠ΅Ρ‚ΠΎΠ΄. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ print ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π° Π²Ρ…ΠΎΠ΄Π° массив Ρ‚ΠΈΠΏΠ° int . ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ бСзымянный массив.

25. ΠœΠ°ΡΡΠΈΠ²Ρ‹. Бпособы объявлСния ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ массивов. Π˜Π½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива.

Массив (Π°Π½Π³Π». Array) это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, хранящий Π² сСбС фиксированноС количСство Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, массив β€” это Π½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Π² массивС называСтся элСмСнтом массива, Π° Π΅Π΅ позиция Π² массивС задаСтся индСксом.

ОбъявлСниС массива в Java

ΠŸΡ€ΠΈ создании массива Π² Java ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

int[] myFirstArray;

МоТно Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ массив Ρ‚Π°ΠΊ:

int mySecondArray[];

Π’ΠΈΠΏ массива задаСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ type[], Π³Π΄Π΅ type это Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… содСрТащихся Π² Π½Π΅ΠΌ элСмСнтов. Π‘ΠΊΠΎΠ±ΠΊΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ содСрТатся Π² массивС. Имя массива ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Π»ΡŒ Π»ΡŽΠ±Ρ‹ΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ имСнования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², Π½ΠΎ ΠΈ ΠΈΠ· ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

ΠŸΡ€ΠΈ объявлСнии массива Π² языкС Java Π½Π΅ указываСтся Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ Π½Π΅ рСзСрвируСтся ΠΏΠ°ΠΌΡΡ‚ΡŒ для Π½Π΅Π³ΠΎ. ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ лишь созданиС ссылки Π½Π° массив.

ΠžΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ имя массива ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ для Π½Π΅Π³ΠΎ ΠΏΠ°ΠΌΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ строкС.

int[] myArray = new int[10];

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

for(int i = 0; i < 15; i++){

myFirstArray[i] = 10;

}

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива

Π Π°Π·ΠΌΠ΅Ρ€ массива Π½Π΅ всСгда ΠΎΡ‡Π΅Π²ΠΈΠ΄Π΅Π½, поэтому для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свойство length, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ массива.

myColor.length;

26. ΠœΠ°ΡΡΠΈΠ²Ρ‹. Алгоритмы сортировки.

Массив (Π°Π½Π³Π». Array) это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, хранящий Π² сСбС фиксированноС количСство Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, массив β€” это Π½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Π² массивС называСтся элСмСнтом массива, Π° Π΅Π΅ позиция Π² массивС задаСтся индСксом.

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ массива называСтся процСсс упорядочивания элСмСнтов массива ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ ΠΈΠ»ΠΈ ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ. Π’ этом ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ способы сортировки ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹.

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠΌ (Bubble sort)

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΡƒ, больший элСмСнт массива поднимаСтся «Π²Π²Π΅Ρ€Ρ…».

Алгоритм состоит ΠΈΠ· ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΎΠ² ΠΏΠΎ сортируСмому массиву. Π—Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ элСмСнты ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠΏΠ°Ρ€Π½ΠΎ ΠΈ, Ссли порядок Π² ΠΏΠ°Ρ€Π΅ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ, выполняСтся ΠΎΠ±ΠΌΠ΅Π½ элСмСнтов. ΠŸΡ€ΠΎΡ…ΠΎΠ΄Ρ‹ ΠΏΠΎ массиву ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‚ΡΡ N-1 Ρ€Π°Π· ΠΈΠ»ΠΈ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π° ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π΅ Π½Π΅ окаТСтся, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΠΌΠ΅Π½Ρ‹ большС Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ β€” массив отсортирован. ΠŸΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΏΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌΡƒ Ρ†ΠΈΠΊΠ»Ρƒ, ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ наибольший элСмСнт массива ставится Π½Π° своё мСсто Π² ΠΊΠΎΠ½Ρ†Π΅ массива рядом с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ «наибольшим элСмСнтом», Π° наимСньший элСмСнт пСрСмСщаСтся Π½Π° ΠΎΠ΄Π½Ρƒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΊ Π½Π°Ρ‡Π°Π»Ρƒ массива («всплываСт» Π΄ΠΎ Π½ΡƒΠΆΠ½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΊΠ°ΠΊ ΠΏΡƒΠ·Ρ‹Ρ€Ρ‘ΠΊ Π² Π²ΠΎΠ΄Π΅, ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°).

void bubble(int* a, int n)

{

for (int i=n-1; i>=0; i—)

{

for (int j=0; j<i; j++)

{

if (a[j] > a[j+1])

{

int tmp = a[j];

a[j] = a[j+1];

a[j+1] = tmp;

}

}

}

}

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° вставками (Insertion sort)

Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΈ вставляСм элСмСнт Π² Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ.

На ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΌΡ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· элСмСнтов Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ вставляСм Π΅Π³ΠΎ Π½Π° Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π² ΡƒΠΆΠ΅ отсортированном спискС, Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π°Π±ΠΎΡ€ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ исчСрпан. ΠœΠ΅Ρ‚ΠΎΠ΄ Π²Ρ‹Π±ΠΎΡ€Π° ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ элСмСнта ΠΈΠ· исходного массива ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½; ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ практичСски любой Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π²Ρ‹Π±ΠΎΡ€Π°. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ (ΠΈ с Ρ†Π΅Π»ΡŒΡŽ получСния устойчивого Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° сортировки), элСмСнты Π²ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎ порядку ΠΈΡ… появлСния Π²ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΌ массивС. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ эту ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ Π²Ρ‹Π±ΠΎΡ€Π°.

void insert_sort(int *a, int n)

{

int i, j, value;

for(i = 1; i < n; i++)

{

value = a[i];

for (j = i — 1; j >= 0 && a[j] > value; j—)

{

a[j + 1] = a[j];

}

a[j + 1] = value;

}

}

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ (Selection sort)

УпорядочиваСм постСпСнно массив, заполняя ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ нСупорядочСнной части ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ элСмСнтом ΠΈΠ· нСупорядочСнной части.

Π¨Π°Π³ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°: Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€ минимального значСния Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ спискС, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌ ΠΎΠ±ΠΌΠ΅Π½ этого значСния со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ΅Ρ€Π²ΠΎΠΉ нСотсортированной ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ (ΠΎΠ±ΠΌΠ΅Π½ Π½Π΅ Π½ΡƒΠΆΠ΅Π½, Ссли ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт ΡƒΠΆΠ΅ находится Π½Π° Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ), Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ сортируСм хвост списка, ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΠ² ΠΈΠ· рассмотрСния ΡƒΠΆΠ΅ отсортированныС элСмСнты. Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ устойчивости Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² ΠΏΡƒΠ½ΠΊΡ‚Π΅ 2 ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт нСпосрСдствСнно Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π½Π΅ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ, Π½Π΅ мСняя порядок ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов.

void select_sort(int *a, int length){

for (int i = 0; i < length — 1; i++) {

/* устанавливаСм Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ минимального индСкса */

int min_i = i;

/* Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ индСкс минимального элСмСнта */

for (int j = i + 1; j < length; j++) {

if (a[j] < a[min_i]) {

min_i = j;

}

}

/* мСняСм значСния мСстами */

int temp = array[i];

array[i] = array[min_i];

array[min_i] = temp;

}

} Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° слияниСм (Merge sort)

УпорядочиваСм списки (ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ структуры Π΄Π°Π½Π½Ρ‹Ρ…, доступ ΠΊ элСмСнтам ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” ΠΏΠΎΡ‚ΠΎΠΊΠΈ) Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌ порядкС.

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ сортировки эти Ρ‚Ρ€ΠΈ этапа выглядят Ρ‚Π°ΠΊ: 1) Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ массив разбиваСтся Π½Π° Π΄Π²Π΅ части ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°; 2) КаТдая ΠΈΠ· ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΡ…ΡΡ частСй сортируСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” Ρ‚Π΅ΠΌ ΠΆΠ΅ самым Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ; 3) Π”Π²Π° упорядочСнных массива ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ Π² ΠΎΠ΄ΠΈΠ½. 1.1. — 2.1. РСкурсивноС Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° мСньшиС происходит Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Ρ€Π°Π·ΠΌΠ΅Ρ€ массива Π½Π΅ достигнСт Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ (любой массив Π΄Π»ΠΈΠ½Ρ‹ 1 ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ упорядочСнным). 3.1. Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… упорядочСнных массивов Π² ΠΎΠ΄ΠΈΠ½. ΠžΡΠ½ΠΎΠ²Π½ΡƒΡŽ идСю слияния Π΄Π²ΡƒΡ… отсортированных массивов ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. ΠŸΡƒΡΡ‚ΡŒ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π²Π° подмассива. ΠŸΡƒΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅, элСмСнты подмассивов Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· этих подмассивов отсортированы ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ. Π’ΠΎΠ³Π΄Π°: 3.2. БлияниС Π΄Π²ΡƒΡ… подмассивов Π² Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ массив. На ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС ΠΌΡ‹ Π±Π΅Ρ€Ρ‘ΠΌ мСньший ΠΈΠ· Π΄Π²ΡƒΡ… ΠΏΠ΅Ρ€Π²Ρ‹Ρ… элСмСнтов подмассивов ΠΈ записываСм Π΅Π³ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ массив. Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊΠΈ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² элСмСнтов Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ массива ΠΈ подмассива ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±Ρ‹Π» взят элСмСнт ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ Π½Π° 1. 3. «ΠŸΡ€ΠΈΡ†Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅» остатка. Когда ΠΎΠ΄ΠΈΠ½ ΠΈΠ· подмассивов закончился, ΠΌΡ‹ добавляСм всС ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ элСмСнты Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ подмассива Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ массив.

Быстрая сортировка (Quicksort)

QuickSort являСтся сущСствСнно ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° сортировки с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прямого ΠΎΠ±ΠΌΠ΅Π½Π° (Π΅Π³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ извСстны ΠΊΠ°ΠΊ Β«ΠŸΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠ²Π°Ρ сортировка» ΠΈ «ШСйкСрная сортировка»), извСстного, Π² Ρ‚ΠΎΠΌ числС, своСй Π½ΠΈΠ·ΠΊΠΎΠΉ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ производятся пСрСстановки Π½Π° наибольшСм Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΌ расстоянии ΠΈ послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π° элСмСнты дСлятся Π½Π° Π΄Π²Π΅ нСзависимыС Π³Ρ€ΡƒΠΏΠΏΡ‹. Π›ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΊΡ‚: ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ самого нСэффСктивного прямого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° сортировки Π΄Π°Π»ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивных ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² Java ΠΈ Java 2 ME. Π§Π°ΡΡ‚ΡŒ VIII

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

int[]M;

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊΠΎΠΉ записи создаСтся пустая пСрСмСнная, содСрТащая Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ массив Π΄Π°Π½Π½Ρ‹Ρ…. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΡ‹ создали массив Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π΅Ρ‰Π΅ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ массива происходит Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ объявлСниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса. НСобходимо Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом new Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ массиву ΠΈ явно ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ количСством элСмСнтов.

int[]M = new int[20]

Π’ этой строкС ΠΊΠΎΠ΄Π° Π±Ρ‹Π» создан цСлочислСнный массив, состоящий ΠΈΠ· Π΄Π²Π°Π΄Ρ†Π°Ρ‚ΠΈ элСмСнтов. К ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΈΠ· элСмСнтов массива ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ индСкса M[n], для сохранСния Π»ΠΈΠ±ΠΎ ΠΈΠ·ΡŠΡΡ‚ΠΈΡ значСния Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта.

M[0] = 3;
M[1] = 5;
M[2] = 20;

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

int[]M = new int[50];
for (int i = 0; i {
M[i] = i;
}

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ происходит инициализация ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта массива ΠΎΡ‚ 0 Π΄ΠΎ 49, цСлочислСнными значСниями ΠΎΡ‚ 0 Π΄ΠΎ 49. МоТно ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив Π΄Ρ€ΡƒΠ³ΠΈΠΌ способом, Π±Π΅Π· ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова new.

int[]M = {0, 1, 2, 3, 4}

Π’ этом случаС ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт массива инициализируСтся ΠΏΡΡ‚ΡŒΡŽ числами ΠΎΡ‚ 0 Π΄ΠΎ 4. ВсС Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ создавали простой ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° приходится ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°Ρ€Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. НапримСр, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΏΠΎ Π₯ ΠΈ ΠΏΠΎ Y Π² систСмС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚. Для этого Π² Java ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы Π΄Π°Π½Π½Ρ‹Ρ….

int stroka = 10;
int stolbec = 10;
int[][]M = new[stroka][stolbec];

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

int[][]M =
{
{5, 3, 8},
{7, 12, 16},
{9, 12, 14}
}

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

int[][]M = new int[100][50];
for (int i = 0; i < 100; i++)
for (int a = 0; a < 50; a++)
M[i][a] = 0;

ΠœΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ большоС количСство Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ΅ записанного ΠΊΠΎΠ΄Π°, сохраняя ΠΏΡ€ΠΈ этом Π΅Π³ΠΎ ΠΏΠΎΠ½ΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΈ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

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

ΠžΡΠ½ΠΎΠ²Ρ‹ языка программирования Java. Π§Π°ΡΡ‚ΡŒ I
Бинтаксис ΠΈ сСмантика языка Java. Π§Π°ΡΡ‚ΡŒ II
ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ языка Java. Π§Π°ΡΡ‚ΡŒ III
ΠœΠ΅Ρ‚ΠΎΠ΄ main Π² языках Java ΠΈ Java 2 ME. Π§Π°ΡΡ‚ΡŒ IV
ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ классов Π² Java ΠΈ Java 2 ME. Π§Π°ΡΡ‚ΡŒ V
УсловныС ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Java. Π§Π°ΡΡ‚ΡŒ VI
Π¦ΠΈΠΊΠ»Ρ‹ языка программирования Java. Π§Π°ΡΡ‚ΡŒ VII
ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² Java ΠΈ Java 2 ME. Π§Π°ΡΡ‚ΡŒ VIII
НаслСдованиС Π² языкС программирования Java. Π§Π°ΡΡ‚ΡŒ IΠ₯
Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ Π² Java ΠΈ Java 2 ME. Π§Π°ΡΡ‚ΡŒ Π₯
ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ Π² Java ΠΈ Java 2 ME. Π§Π°ΡΡ‚ΡŒ Π₯I

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² Kotlin

Π’ Kotlin ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ «ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠ΅» массивы, ΠΊΠΎΠ³Π΄Π° Π² ΠΎΠ΄Π½ΠΎΠΌ массивС ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΈ Π² массив нСльзя Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ элСмСнты, ΠΊΠ°ΠΊ Π² список.

ОбъявлСниС массива:

ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ val, Π½ΠΎ это Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ нСльзя ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ элСмСнтов массива. НСизмСняСмой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ массив Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅Π΄ΠΈΠ½ΠΎΠΆΠ΄Ρ‹. Var-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ массив.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ массива Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΊΠ°ΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‚Π°ΠΊ ΠΈ конструкторов классов. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΠΈΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ встроСнная функция arrayOf(), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ пСрСдаСтся Π½Π°Π±ΠΎΡ€ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

fun main() {
    val a: Array<Int> = arrayOf(9, 3, 4)
Β 
    println(a.size)
Β 
    a[0] = 10
Β 
    for (i in a) {
        println(i)
    }
}

Для измСрСния Π΄Π»ΠΈΠ½Ρ‹ массива ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ свойство класса size.

Π˜Π½ΠΈΡ†ΠΈΠ°Ρ†ΠΈΡ Ρ‚Ρ€Π΅Ρ… элСмСнтов массива Π½ΡƒΠ»Π΅ΠΌ ΠΏΡ€ΠΈ использовании конструктора класса:

fun main() {
    val a: Array<Int> = Array(3) {0}
    a[0] = 5
Β 
    for (i in a) {
        println(i)
    }
}

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ класса Array ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² качСствС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° лямбда-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки, ΠΎΠ½ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ значСния. Π’Π°ΠΊΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π² Kotlin ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ выносят Π·Π° ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки.

ΠŸΡ€ΠΈ запросС элСмСнтов ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ для массивов синтаксис с ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ скобками. Π’ классС ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ get() ΠΈ set(). Π˜Ρ… Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ нСпосрСдствСнно ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ.

Π’ Kotlin массивы прСдставлСны Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ классом Array. Π•ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ классы (ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ) для создания массивов, содСрТащих элСмСнты ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² – BooleanArray, ByteArray, ShortArray, IntArray, LongArray, CharArray, FloatArray, DoubleArray. Они нСсколько ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‚ созданиС массивов. ΠžΠ±Ρ€Π°Ρ‚ΠΈΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π½Π΅Ρ‚ StringArray. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π½Π΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ.

fun main() {
    val a: ByteArray = byteArrayOf(true, false, false)
Β 
    for (i in a) println(i)
}

Для числовых Ρ‚ΠΈΠΏΠΎΠ² Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹Ρ… массивов – UByteArray, UShortArray, UIntArray, ULongArray.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ логичСских ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² in ΠΈ !in ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² массивС.

fun main() {
    val a: BooleanArray = booleanArrayOf(true, false, false)
    val b: IntArray = intArrayOf(5, 3, 1, 2)
Β 
    println(true in a) // true
    println(0 in b) // false
}

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

Π’ Kotlin Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ созданиС Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов.

fun main() {
    val a: Array<IntArray> = Array(3) {IntArray(4) {0} }
Β 
    val n = a.size // количСство строк
    val m = a[0].size // количСство элСмСнтов Π² строкС
Β 
    for (i in 0 until n) {
        for (j in 0 until m) {
            a[i][j] = (Math.random() * 10).toInt()
            print(" ${a[i][j]}")
        }
        println()
    }
}

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ выполнСния ΠΊΠΎΠ΄Π°:

Π—Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ массив ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

fun main() {
    val a: Array<IntArray> = Array(2) {IntArray(4) {0} }
    a[0] = intArrayOf(1, 2, 3, 4)
    a[1] = intArrayOf(5, 6, 7, 8)
Β 
    for (i in a) {
        for (j in i) {
            print(" $j")
        }
        println()
    }
}

PDF-вСрсия курса с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΡƒΡ€ΠΎΠΊΠ°ΠΌΠΈ

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Android «Kotlin. ΠšΡƒΡ€Ρ»

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ массивов Π² Java | Opensource.com

Π›ΡŽΠ΄ΠΈ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΡ‹Ρ‚ программирования Π½Π° Ρ‚Π°ΠΊΠΈΡ… языках, ΠΊΠ°ΠΊ C ΠΈΠ»ΠΈ FORTRAN, Π·Π½Π°ΠΊΠΎΠΌΡ‹ с ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠ΅ΠΉ массивов. По сути, ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ памяти, Π³Π΄Π΅ каТдая ячСйка относится ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ: Ρ†Π΅Π»Ρ‹Π΅ числа, числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Π΅.

Битуация Π² Java Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π°, Π½ΠΎ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΌΠΎΡ€Ρ‰ΠΈΠ½Π°ΠΌΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ массива

Π”Π°Π²Π°ΠΉΡ‚Π΅ создадим массив ΠΈΠ· 10 Ρ†Π΅Π»Ρ‹Ρ… чисСл Π½Π° Java:


 

Π§Ρ‚ΠΎ происходит Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ ΠΊΠΎΠ΄Π°? Π‘Π»Π΅Π²Π° Π½Π°ΠΏΡ€Π°Π²ΠΎ:

  1. int [] Π² ΠΊΡ€Π°ΠΉΠ½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠ°ΠΊ массив (ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ [] ) int .

  2. Π‘ΠΏΡ€Π°Π²Π° находится имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС — ia .

  3. Π”Π°Π»Π΅Π΅, = сообщаСт Π½Π°ΠΌ, Ρ‡Ρ‚ΠΎ пСрСмСнная, опрСдСлСнная слСва, установлСна ​​на Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ находится справа.

  4. Π‘ΠΏΡ€Π°Π²Π° ΠΎΡ‚ = ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ слово new , ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π² Java ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ инициализируСтся , Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π° ΠΈ вызываСтся Π΅Π΅ конструктор (см. Π—Π΄Π΅ΡΡŒ для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ).

  5. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ int [10] , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сообщаСт Π½Π°ΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ прСдставляСт собой массив ΠΈΠ· 10 Ρ†Π΅Π»Ρ‹Ρ… чисСл.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Java являСтся строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ, Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ia Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ совмСстим с Ρ‚ΠΈΠΏΠΎΠΌ выраТСния Π² ΠΏΡ€Π°Π²ΠΎΠΉ части = .

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

Π”Π°Π²Π°ΠΉΡ‚Π΅ помСстим этот простой массив Π² Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° ΠΈ ΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π΅Π³ΠΎ. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π² Ρ„Π°ΠΉΠ»Π΅ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Test1.java , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ javac для Π΅Π³ΠΎ компиляции ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ java для Π΅Π³ΠΎ запуска (ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅):

 import java.lang. *; 

ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ класс Test1 {

общСдоступный статичСский void main (String [] args) {
int [] ia = new int [10]; // Π‘ΠΌ. ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 1 Π½ΠΈΠΆΠ΅
System.out.println ("ia is" + ia.getClass ()); // Π‘ΠΌ. ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 2 Π½ΠΈΠΆΠ΅
для (int i = 0; i System.out.println ("ia [" + i + "] =" + ia [i]); // Π‘ΠΌ. ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 4 Π½ΠΈΠΆΠ΅
}

}

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΡ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ самыС Π²Π°ΠΆΠ½Ρ‹Π΅ части.

  1. НашС объявлСниС ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ массива ΠΈΠ· 10 Ρ†Π΅Π»Ρ‹Ρ… чисСл, ia , Π»Π΅Π³ΠΊΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ.
  2. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ia.getClass () . ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ia — это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ , ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΉ ΠΊ классу , ΠΈ этот ΠΊΠΎΠ΄ сообщит Π½Π°ΠΌ, ΠΊΠ°ΠΊΠΎΠΉ это класс.
  3. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Π½Π°Ρ‡Π°Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° для (int i = 0; i , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ†ΠΈΠΊΠ»Π° i , которая ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ нуля Π΄ΠΎ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ мСньшС ia.length , Ρ‡Ρ‚ΠΎ являСтся Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ сообщаСт Π½Π°ΠΌ, сколько элСмСнтов ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π² массивС ia .
  4. Π—Π°Ρ‚Π΅ΠΌ Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° распСчатываСт значСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта ia .

Когда эта ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° компилируСтся ΠΈ запускаСтся, ΠΎΠ½Π° Π΄Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹:

 

ΠΌΠ½Π΅ @ mydesktop: ~ / Java $ javac Test1.java
me @ mydesktop: ~ / Java $ java Test1
ia - это класс [I
ia [0] = 0
ia [1] = 0
ia [2] = 0
ia [3] = 0
ia [4] ] = 0
ia [5] = 0
ia [6] = 0
ia [7] = 0
ia [8] = 0
ia [9] = 0
me @ mydesktop: ~ / Java $

Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²ΠΎΠ΅ прСдставлСниС Π²Ρ‹Π²ΠΎΠ΄Π° ia.getClass () — это [I , Ρ‡Ρ‚ΠΎ являСтся сокращСниСм для «массив Ρ†Π΅Π»Ρ‹Ρ… чисСл». Подобно языку программирования C, массивы Java Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ элСмСнта ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‚ΡΡ Π΄ΠΎ элСмСнта <Ρ€Π°Π·ΠΌΠ΅Ρ€ массива> — 1 .Π’Ρ‹ΡˆΠ΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· элСмСнтов ia установлСн Π² ноль (каТСтся, конструктором массива).

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ это? ΠœΡ‹ объявляСм Ρ‚ΠΈΠΏ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€, ΠΈ всС?

Ну Π½Π΅Ρ‚. Π•ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… способов ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив Π² Java.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ я Π²ΠΎΠΎΠ±Ρ‰Π΅ Ρ…ΠΎΡ‡Ρƒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив?

ΠžΡ‚Π²Π΅Ρ‚ Π½Π° этот вопрос, ΠΊΠ°ΠΊ ΠΈ Π½Π° всС Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ вопросы, — «зависит ΠΎΡ‚ ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Β». Π’ этом случаС ΠΎΡ‚Π²Π΅Ρ‚ зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ с массивом послС Π΅Π³ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях массивы Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ СстСствСнным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏ аккумулятора. НапримСр, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ пишСм ΠΊΠΎΠ΄ для подсчСта количСства Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΈ сдСланных Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π΄ΠΎΠ±Π°Π²ΠΎΡ‡Π½Ρ‹Ρ… Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² Π² нСбольшом офисС. Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ восСмь Π΄ΠΎΠ±Π°Π²ΠΎΡ‡Π½Ρ‹Ρ… Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² с Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎ восьми плюс Π΄ΠΎΠ±Π°Π²ΠΎΡ‡Π½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ. Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Π΄Π²Π° массива:

 

int [] callsMade;
int [] callsReceived;

Π—Π°Ρ‚Π΅ΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ сбора статистики Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², ΠΌΡ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ массив ΠΊΠ°ΠΊ:

 

callsMade = Π½ΠΎΠ²Ρ‹ΠΉ int [9];
callsReceived = Π½ΠΎΠ²Ρ‹ΠΉ int [9];

Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° сбора статистики Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ статистику. Если ΠΎΡ‡Π΅Π½ΡŒ Π³Ρ€ΡƒΠ±ΠΎ, Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ:

 import java.lang. *; 
import java.io. *;

ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ класс Test2 {

общСдоступный статичСский void main (String [] args) {

int [] callsMade;
int [] callsReceived;

// ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ счСтчики Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²

callsMade = new int [9];
callsReceived = Π½ΠΎΠ²Ρ‹ΠΉ int [9];

// процСсс Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ...
// Π΄ΠΎΠ±Π°Π²ΠΎΡ‡Π½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ выполняСт Π²Ρ‹Π·ΠΎΠ²: callsMade [ext] ++
// Π΄ΠΎΠ±Π°Π²ΠΎΡ‡Π½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π²Ρ‹Π·ΠΎΠ²: callsReceived [ext] ++

// сводная статистика Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²

БистСма.out.printf (Β«% 3s% 25s% 25s \ nΒ», Β«extΒ», «сдСланныС Π·Π²ΠΎΠ½ΠΊΠΈΒ»,
Β«ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π·Π²ΠΎΠ½ΠΊΠΈΒ»);
для (int ext = 0; ext System.out.printf ("% 3d% 25d% 25d \ n", ext,
callsMade [ext], callsReceived [ext]);

}

}

Π§Ρ‚ΠΎ даст ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

 

me @ mydesktop: ~ / Java $ javac Test2.java
me @ mydesktop: ~ / Java $ java Test2
внСшниС Π²Ρ‹Π·ΠΎΠ²Ρ‹ принятыС Π²Ρ‹Π·ΠΎΠ²Ρ‹
0 0 0
1 0 0
2 0 0
3 0 0
4 0 0
5 0 0
6 0 0
7 0 0
8 0 0
me @ mydesktop: ~ / Java $

НС ΠΎΡ‡Π΅Π½ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΉ дСнь Π² ΠΊΠΎΠ»Π»-Ρ†Π΅Π½Ρ‚Ρ€Π΅.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ аккумулятора ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ нуля, установлСнноС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠΌ массива, являСтся ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ для Π½Π°ΡˆΠΈΡ… Π½ΡƒΠΆΠ΄. Но Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… случаях это Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ.

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

 

Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ [] [] m = Π½ΠΎΠ²Ρ‹ΠΉ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ [3] [3];
для (int d = 0; d <3; d ++)
m [d] [d] = 1.0;

Π’ этом случаС ΠΌΡ‹ полагаСмся Π½Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ массива new double [3] [3] для установки массива Π² Π½ΡƒΠ»ΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ†ΠΈΠΊΠ» для установки Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов Π² Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹. Π’ этом простом случаС ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ярлык, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт Java:

 

double [] [] m = {
{1.0, 0.0, 0.0},
{0.0, 1.0, 0.0},
{0.0, 0.0, 1.0}};

Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ структуры особСнно ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π³Π΄Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ фактичСский ΠΌΠ°ΠΊΠ΅Ρ‚ массива. Но Π² случаС, ΠΊΠΎΠ³Π΄Π° количСство строк ΠΈ столбцов опрСдСляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ врСмя выполнСния, ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ вмСсто этого ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ этого:

 

int nrc;
// ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΊΠΎΠ΄ опрСдСляСт количСство строк & columns = nrc
double [] [] m = new double [nrc] [nrc];
для (int d = 0; d m [d] [d] = 1.0;

Π‘Ρ‚ΠΎΠΈΡ‚ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Π² Java Π½Π° самом Π΄Π΅Π»Π΅ прСдставляСт собой массив массивов, ΠΈ Π½ΠΈΡ‡Ρ‚ΠΎ Π½Π΅ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ Π±Π΅ΡΡΡ‚Ρ€Π°ΡˆΠ½ΠΎΠΌΡƒ программисту ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих массивов Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ уровня Ρ€Π°Π·Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹.Π’ΠΎ Π΅ΡΡ‚ΡŒ Π²ΠΏΠΎΠ»Π½Π΅ Π·Π°ΠΊΠΎΠ½Π½ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ этого:

 

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

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

 

Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ…LengthRows. Π΄Π»ΠΈΠ½Π°

сообщаСт Π½Π°ΠΌ количСство строк Π² Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠΌ массивС differentLengthRows ΠΈ:

 

differentLengthRows [i] .length

сообщаСт Π½Π°ΠΌ количСство столбцов Π² строкС ΠΈ ΠΈΠ· Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ…LengthRows .

Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅Π΅ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ массива

Рассматривая эту идСю Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСтся Π²ΠΎ врСмя выполнСния, ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ массивы ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ Π·Π½Π°Π»ΠΈ этот Ρ€Π°Π·ΠΌΠ΅Ρ€, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΡ… экзСмпляры. Но Ρ‡Ρ‚ΠΎ, Ссли ΠΌΡ‹ Π½Π΅ Π·Π½Π°Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ всС Π΄Π°Π½Π½Ρ‹Π΅? ΠžΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π»ΠΈ это, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΅Π³ΠΎ снова? Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ слоТно, особСнно Ссли Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ шанс ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅.

Java Collections Framework Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ. Одна ΠΈΠ· Π²Π΅Ρ‰Π΅ΠΉ, прСдставлСнных Ρ‚Π°ΠΌ, — это класс ArrayList , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° массив, Π½ΠΎ динамичСски Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ΡΡ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ArrayList , Π΄Π°Π²Π°ΠΉΡ‚Π΅ создадим Π΅Π³ΠΎ ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ 20 числами Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ:

 import java. lang. *; 
import java.util. *;

ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ класс Test3 {

public static void main (String [] args) {

ArrayList fibos = new ArrayList ();

фибос.Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ (0);
fibos.add (1);
для (int i = 2; i <20; i ++)
fibos.add (fibos.get (i-1) + fibos.get (i-2));

для (int i = 0; i System.out.println ("fibonacci" + i +
"=" + fibos.get (i));

}
}

Π’Π²Π΅Ρ€Ρ…Ρƒ Π²ΠΈΠ΄ΠΈΠΌ:

  • ОбъявлСниС ΠΈ созданиС экзСмпляра ArrayList , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для хранСния Integer s.
  • ИспользованиС add () для добавлСния ΠΊ экзСмпляру ArrayList .
  • ИспользованиС get () для получСния элСмСнта ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ индСкса.
  • ИспользованиС size () для опрСдСлСния количСства элСмСнтов ΡƒΠΆΠ΅ Π² экзСмплярС ArrayList .

НС ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ put () , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ порядковый Π½ΠΎΠΌΠ΅Ρ€.

Π’Ρ‹Π²ΠΎΠ΄ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

 

Ρ„ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ 0 = 0
Ρ„ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ 1 = 1
Ρ„ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ 2 = 1
Ρ„ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ 3 = 2
Ρ„ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ 4 = 3
Ρ„ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ 5 = 5
Ρ„ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ 6 = 8
Ρ„ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ 7 = 13
Ρ„ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ 8 = 21
Ρ„ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ 9 = 34
Ρ„ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ 10 = 55
Ρ„ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ 11 = 89
Ρ„ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ 12 = 144
Ρ„ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ 13 = 233
Ρ„ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ 14 = 377
Ρ„ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ 15 = 610
Ρ„ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ 16 = 987
Ρ„ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ 17 = 1597
Ρ„ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ 18 = 2584
Ρ„ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ 19 = 4181

ЭкзСмпляры ArrayList Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ способами.НапримСр, массив ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ конструктору ArrayList ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ List.of () ΠΈ Arrays.asList () ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, ΠΊΠΎΠ³Π΄Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ элСмСнты извСстны Π²ΠΎ врСмя компиляции. Π― Π½Π΅ Ρ‚Π°ΠΊ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ эти ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠΎΠΉ основной Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ использования ArrayList — это ΠΊΠΎΠ³Π΄Π° я Ρ…ΠΎΡ‡Ρƒ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·.

Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, экзСмпляр ArrayList ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ Π² массив с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° toArray () для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с массивом послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…; ΠΈΠ»ΠΈ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ‚Π΅ΠΌΠ΅, послС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ экзСмпляра ArrayList .

Java Collections Framework прСдоставляСт Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²ΠΈΠ΄ структуры Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ массиву, ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Map . Под Β«ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ массиву» я ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Map опрСдСляСт Π½Π°Π±ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², значСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ установлСны ΠΈΠ»ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π°, Π½ΠΎ Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ массива (ΠΈΠ»ΠΈ ArrayList ) этот ΠΊΠ»ΡŽΡ‡ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ†Π΅Π»Ρ‹ΠΌ числом. ; это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ String ΠΈΠ»ΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ слоТный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

НапримСр, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ Map , ΠΊΠ»ΡŽΡ‡ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ — String s, Π° значСния — Integer s ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:


 

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эту ΠΊΠ°Ρ€Ρ‚Ρƒ Map ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

 

stoi. set ("ΠΎΠ΄ΠΈΠ½", 1);
stoi.set (Β«Π΄Π²Π°Β», 2);
stoi.set (Β«Ρ‚Ρ€ΠΎΠΉΠΊΠ°Β», 3);

И Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. ПозТС, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΠΌ ΡƒΠ·Π½Π°Ρ‚ΡŒ числовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ «Ρ‚Ρ€ΠΈ» , ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ:


 

Π’ ΠΌΠΎΠ΅ΠΌ ΠΌΠΈΡ€Π΅ ΠΊΠ°Ρ€Ρ‚Π° Map ΠΏΠΎΠ»Π΅Π·Π½Π° для прСобразования строк, Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π² сторонних Π½Π°Π±ΠΎΡ€Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Π² согласованныС значСния ΠΊΠΎΠ΄Π° Π² ΠΌΠΎΠΈΡ… Π½Π°Π±ΠΎΡ€Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π° прСобразования Π΄Π°Π½Π½Ρ‹Ρ… я часто создаю Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для очистки Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ; для этого я ΠΏΠΎΡ‡Ρ‚ΠΈ всСгда Π±ΡƒΠ΄Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ»ΠΈ нСсколько ΠΊΠ°Ρ€Ρ‚ Map s.

Π‘Ρ‚ΠΎΠΈΡ‚ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈ Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ ArrayLists ΠΈΠ· ArrayLists ΠΈ Map s ΠΈΠ· Map s. НапримСр, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ смотрим Π½Π° Π΄Π΅Ρ€Π΅Π²ΡŒΡ ΠΈ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠ΄ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ количСство Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² ΠΏΠΎ ΠΏΠΎΡ€ΠΎΠ΄Π°ΠΌ ΠΈ возрасту. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, Ρ‡Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ возрастного Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° прСдставляСт собой Π½Π°Π±ΠΎΡ€ строковых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ («ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ», «ΡΡ€Π΅Π΄Π½ΠΈΠΉ», «Π·Ρ€Π΅Π»Ρ‹ΠΉ» ΠΈ «ΡΡ‚Π°Ρ€Ρ‹ΠΉ») ΠΈ Ρ‡Ρ‚ΠΎ Π²ΠΈΠ΄Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой строковыС значСния, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ «ΠΏΠΈΡ…Ρ‚Π° Дугласа», «ΠΊΡ€Π°ΡΠ½Ρ‹ΠΉ ΠΊΠ΅Π΄Ρ€ Π·Π°ΠΏΠ°Π΄Π½Ρ‹ΠΉ» ΠΈ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅, Ρ‚ΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Map ΠΈΠ· Map s ΠΊΠ°ΠΊ:


 

Π—Π΄Π΅ΡΡŒ слСдуСт ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π²Ρ‹ΡˆΠ΅ создаСт Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для строк ΠΈΠ· Map s. Π˜Ρ‚Π°ΠΊ, наш ΠΊΠΎΠ΄ накоплСния ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

 // ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π½Π° этом этапС ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Π²ΠΈΠ΄ 
// ΠΈ возрастной Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½
if (! Counter.containsKey (sizes))
counter.put (разновидности, новая ΠΊΠ°Ρ€Ρ‚Π° ());
Ссли (! Counter.get (разновидности) .containsKey (ageRange))
counter.get (разновидности) .put (ageRange, 0);

ПослС этого ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ:

 

counter.get (разновидности) .put (ageRange,
counter.get (разновидности).ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ (ageRange) + 1);

НаконСц, стоит ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ (Π½ΠΎΠ²ΠΎΠ΅ Π² Java 8) срСдство Streams Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ массивов, экзСмпляров ArrayList ΠΈ экзСмпляров Map . Π₯ΠΎΡ€ΠΎΡˆΠ΅Π΅ обсуТдСниС этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь ΠΈ здСсь.

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

БСгодня ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив Π² java. Массив Π² java — это ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ фиксированноС количСство Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ‚ΠΈΠΏΠ°. ЗначСния ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ int, short, byte, ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Ρ‚ΠΈΠΏΠ° String, Integer ΠΈ Ρ‚. Π”.

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

Массив ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌ ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌ. Когда ΠΌΡ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ массив Π΄Π»ΠΈΠ½ΠΎΠΉ , ΠΎΠ½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство строк Π² массивС ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ самого Π»Π΅Π²ΠΎΠ³ΠΎ измСрСния.

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ сокращСнный синтаксис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаСт ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ массив ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

Когда ΠΌΡ‹ создаСм массив с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° new , Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹.Для ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ всС измСрСния ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅Π΅ Π»Π΅Π²ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ массива.

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ допустимыС способы ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ массива Π² java.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ массива Π² java — ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ

 
// ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив
int [] arrInt = Π½ΠΎΠ²Ρ‹ΠΉ int [5];
  

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ массива Π² java — Ρ‚ΠΈΠΏ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

 
// ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Object
String [] strArr; // объявлСниС

strArr = новая строка [4]; // инициализация
  

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива Π² java

 
// ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив
int [] [] twoArrInt = Π½ΠΎΠ²Ρ‹ΠΉ int [4] [5];

// инициализация ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΊΡ€Π°ΠΉΠ½ΠΈΠΌ Π»Π΅Π²Ρ‹ΠΌ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ΠΌ
int [] [] twoIntArr = Π½ΠΎΠ²Ρ‹ΠΉ int [2] [];
twoIntArr [0] = Π½ΠΎΠ²Ρ‹ΠΉ int [2];
twoIntArr [1] = Π½ΠΎΠ²Ρ‹ΠΉ int [3]; // ΠΏΠ΅Ρ€Π΅Π΄ использованиСм массива трСбуСтся полная инициализация
  

Как ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив Π² java с использованиСм сокращСнного синтаксиса

 
// инициализация массива с использованиСм сокращСнного синтаксиса
int [] arrI = {1,2,3};
int [] [] arrI2 = {{1,2}, {1,2,3}};
  

Если Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅, Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив arrI2 Π½Π΅ являСтся симмСтричной ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ. Π­Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Π² java Π½Π° самом Π΄Π΅Π»Π΅ являСтся массивом массива. ПолноС объяснСниС см. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Π² JavaΒ».

НСдопустимыС способы ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ массива Π² java

Π’ΠΎΡ‚ нСсколько нСдопустимых способов ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ массива.

 
// Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½
int [] a = Π½ΠΎΠ²Ρ‹ΠΉ int [];

// Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅Π΅ Π»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ измСрСния
int [] [] aa = Π½ΠΎΠ²Ρ‹ΠΉ int [] [5];
  

Π’ΠΎΡ‚ Π΅Ρ‰Π΅ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² объявлСния массивов Π² java, Π½ΠΎ ΠΈΡ… Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹.

 
int [] twoArrInt [] = Π½ΠΎΠ²Ρ‹ΠΉ int [4] [5];

int twoIntArr [] [] = Π½ΠΎΠ²Ρ‹ΠΉ int [5] [];
  

Π’ΠΎΡ‚ ΠΈ всС, Ρ‡Ρ‚ΠΎ касаСтся объявлСния ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ массива Π² java.

Бсылка: страница Oracle массива Java

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ массива строк Java

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ массива строк Java ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив строк Π² Java. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ массив строк ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ способы Π΅Π³ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Как ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ массив String Π² Java?

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ массив, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ [] array_name; Бинтаксис , ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

Объявляя массив, Π²Ρ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅ компилятору ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ссылку Π½Π° массив, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ создан ΠΏΠΎΠ·ΠΆΠ΅. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ объявлСниС массива Π½Π΅ выдСляСт ΠΏΠ°ΠΌΡΡ‚ΡŒ Π² ΠΊΡƒΡ‡Π΅.

Если Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ссылку Π½Π° этом этапС, компилятор выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ Β«Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, локальная пСрСмСнная strDays Π½Π΅ Π±Ρ‹Π»Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π°Β». ΠŸΠ΅Ρ€Π΅Π΄ использованиСм массив Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

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

БущСствуСт нСсколько способов ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ массива строк Π² Java.ΠŸΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ массива для Π½Π΅Π³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π° ΠΏΠ°ΠΌΡΡ‚ΡŒ.

1) Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ массив строк, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово new вмСстС с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив строк, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово new вмСстС с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ массива, ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

Π‘Ρ‚Ρ€ΠΎΠΊΠ° [] strDays = новая Π‘Ρ‚Ρ€ΠΎΠΊΠ° [7];

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ массив Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅. Он создаст строковый массив ΠΈΠ· 7 элСмСнтов. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ элСмСнты Π² массив, ΡΡΡ‹Π»Π°ΡΡΡŒ Π½Π° Π΅Π³ΠΎ индСкс, ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

Π‘Ρ‚Ρ€ΠΎΠΊΠ° [] strDays = новая Π‘Ρ‚Ρ€ΠΎΠΊΠ° [7];

strDays [0] = «ПонСдСльник»;

strDays [1] = «Π’Ρ‚ΠΎΡ€Π½ΠΈΠΊ»;

strDays [2] = «Π‘Ρ€Π΅Π΄Π°»;

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ элСмСнтам массива с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ индСкса. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ 2-ΠΉ элСмСнт массива, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ strDays [1] . ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ индСкс массива начинаСтся с 0, поэтому ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт массива ΠΈΠΌΠ΅Π΅Ρ‚ индСкс 0, Π° Π½Π΅ 1.

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для элСмСнтов массива строк — null .Π˜Ρ‚Π°ΠΊ, Ссли Π²Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ массив String, Π½ΠΎ Π½Π΅ присваиваСтС Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ значСния Π΅Π³ΠΎ элСмСнтам, ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ null . НапримСр, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ null , ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ присвоили Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ значСния элСмСнту 4 массива.

System.out.println (strDays [3]);

2) Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строковый массив с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова new вмСстС со списком элСмСнтов

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова new ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ элСмСнты массива вмСстС с Π½ΠΈΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

String [] strDays =

new String [] {«ΠŸΠΎΠ½Π΅Π΄Π΅Π»ΡŒΠ½ΠΈΠΊ», «Π’Ρ‚ΠΎΡ€Π½ΠΈΠΊ», «Π‘Ρ€Π΅Π΄Π°»};

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ массив ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ трСмя элСмСнтами. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅Π³ΠΎ элСмСнты.

String [] strDays =

new String [] {«ΠŸΠΎΠ½Π΅Π΄Π΅Π»ΡŒΠ½ΠΈΠΊ», «Π’Ρ‚ΠΎΡ€Π½ΠΈΠΊ», «Π‘Ρ€Π΅Π΄Π°»};

System.out.println (strDays [0]);

System. out.println (strDays [1]);

System.out.println (strDays [2]);

Π’Ρ‹Π²ΠΎΠ΄

3) Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строковый массив с использованиСм списка элСмСнтов

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

String [] strDays = {«ΠŸΠΎΠ½Π΅Π΄Π΅Π»ΡŒΠ½ΠΈΠΊ», «Π’Ρ‚ΠΎΡ€Π½ΠΈΠΊ», «Π‘Ρ€Π΅Π΄Π°»};

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚Π΅ ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ массив ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ (ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π²Ρ‹ΡˆΠ΅).Если Π²Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅ массив ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΠ·ΠΆΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ синтаксис, компилятор выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ Β«ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ массива ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°Ρ…Β».

Π‘Ρ‚Ρ€ΠΎΠΊΠ° [] strDays;

// это НЕ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, ошибка компиляции

strDays = {«ΠΏΠΎΠ½Π΅Π΄Π΅Π»ΡŒΠ½ΠΈΠΊ», «Π²Ρ‚ΠΎΡ€Π½ΠΈΠΊ», «ΡΡ€Π΅Π΄Π°»};

// это сработаСт

strDays = new String [] {«ΠΏΠΎΠ½Π΅Π΄Π΅Π»ΡŒΠ½ΠΈΠΊ», «Π²Ρ‚ΠΎΡ€Π½ΠΈΠΊ», «ΡΡ€Π΅Π΄Π°»};

Π‘ΠΌ. Π’Π°ΠΊΠΆΠ΅ : Как Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ массив Java?

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ руководства ΠΏΠΎ Java Array с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ.

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π΄Π°ΠΉΡ‚Π΅ ΠΌΠ½Π΅ Π·Π½Π°Ρ‚ΡŒ вашС ΠΌΠ½Π΅Π½ΠΈΠ΅ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π½ΠΈΠΆΠ΅.

ΠœΠ°ΡΡΠΈΠ²Ρ‹ — вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ ΠΏΠΎ Java

Π­Ρ‚ΠΎΡ‚ Ρ€Π°Π·Π΄Π΅Π» Π½Π°ΡˆΠΈΡ… 1000+ MCQ посвящСн структурС Π΄Π°Π½Π½Ρ‹Ρ… массива языка программирования Java.

1. Какой ΠΈΠ· этих ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для выдСлСния памяти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ массива Π² Java?
a) malloc
b) alloc
c) new
d) new malloc
ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚

ΠžΡ‚Π²Π΅Ρ‚: c
ОбъяснСниС: ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ new выдСляСт Π±Π»ΠΎΠΊ памяти, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ массива, ΠΈ Π΄Π°Π΅Ρ‚ ссылку Π½Π° Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ массива.

2. Π§Ρ‚ΠΎ ΠΈΠ· этого являСтся Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ объявлСниСм массива?
a) int arr [] = new int [5]
b) int [] arr = new int [5]
c) int arr [] = new int [5]
d) int arr [] = int [5 ] new
ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚

ΠžΡ‚Π²Π΅Ρ‚: d
ОбъяснСниС: ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ new Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅Π΅ΠΌΠ½ΠΈΠΊΠΎΠΌ Ρ‚ΠΈΠΏΠ° ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива.

3. Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π° Java?

 int arr [] = Π½ΠΎΠ²Ρ‹ΠΉ int [5];
    System.out.print (ΠΎΠ±Ρ€.); 

a) 0
b) Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, хранящССся Π² arr [0]
c) 00000
d) Ρ…ΡΡˆ-ΠΊΠΎΠ΄ класса [email protected] Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅
ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚

ΠžΡ‚Π²Π΅Ρ‚: d
ОбъяснСниС: Если ΠΌΡ‹ попытаСмся Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ ΡΡΡ‹Π»ΠΎΡ‡Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π²Π½ΡƒΡ‚Ρ€ΠΈ, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½Π° toString (), которая Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° строки Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ„ΠΎΡ€ΠΌΠ΅:
[элСктронная ΠΏΠΎΡ‡Ρ‚Π° Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π°] Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅

4.Π§Ρ‚ΠΎ ΠΈΠ· этого являСтся Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΌ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ?
a) Для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ массива Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€.
b) Массив ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ с использованиСм Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… запятыми, ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹ΠΌΠΈ скобками
c) Массив ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹
d) Ни ΠΎΠ΄ΠΈΠ½ ΠΈΠ· упомянутых
View Answer

ΠžΡ‚Π²Π΅Ρ‚: a
ОбъяснСниС: Массив ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ с использованиСм ΠΊΠ°ΠΊ Π½ΠΎΠ²Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… запятыми Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹ΠΌΠΈ скобками. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: int arr [5] = new int [5]; ΠΈ int arr [] = {0, 1, 2, 3, 4};

5.Π§Ρ‚ΠΎ ΠΈΠ· этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ массива?
a) Π‘Ρ‚Ρ€ΠΎΠΊΠ°
b) Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ†
c) И строка, ΠΈ столбСц
d) Ни ΠΎΠ΄ΠΈΠ½ ΠΈΠ· упомянутых
ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚

ΠžΡ‚Π²Π΅Ρ‚: a
ОбъяснСниС: НСт.

6. Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π° Java?

  1.  class array_output 
  2.  {
  3.  public static void main (String args []) 
  4.  {
  5.  int array_variable [] = new int [10]; 
  6.  для (int i = 0; i <10; ++ i) 
  7.  {
  8.  array_variable [i] = i; 
  9.  БистСма.out.print (пСрСмСнная_массива [я] + ""); 
  10.  я ++; 
  11. } 
  12. } 
  13. } 

a) 0 2 4 6 8
b) 1 3 5 7 9
c) 0 1 2 3 4 5 6 7 8 9
d) 1 2 3 4 5 6 7 8 9 10
ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚

ΠžΡ‚Π²Π΅Ρ‚: a
ОбъяснСниС: Когда массив ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ с использованиСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° new, всС Π΅Π³ΠΎ элСмСнты автоматичСски ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 0. Π’Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° for выполняСтся 5 Ρ€Π°Π·, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° элСмСнты управлСния входят Π² Ρ†ΠΈΠΊΠ», Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ i увСличиваСтся Π΄Π²Π°ΠΆΠ΄Ρ‹, сначала Π½Π° i ++ Π² Ρ‚Π΅Π»Π΅ Ρ†ΠΈΠΊΠ»Π°, Π·Π°Ρ‚Π΅ΠΌ Π½Π° ++ i Π² условии приращСния Ρ†ΠΈΠΊΠ»Π° for.
Π²Ρ‹Ρ…ΠΎΠ΄:
 $ javac array_output.java
$ java array_output
0 2 4 6 8 

7. Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π° Java?

  1.  class multidimention_array 
  2.  {
  3.  public static void main (String args []) 
  4.  {
  5.  int arr [] [] = new int [3] []; 
  6.  arr [0] = Π½ΠΎΠ²Ρ‹ΠΉ int [1]; 
  7.  arr [1] = Π½ΠΎΠ²Ρ‹ΠΉ int [2]; 
  8.  arr [2] = Π½ΠΎΠ²Ρ‹ΠΉ int [3]; 
  9.  int sum = 0; 
  10.  для (int i = 0; i <3; ++ i) 
  11.  для (int j = 0; j 
  12.  arr [i] [j ] = j + 1; 
  13.  для (int i = 0; i <3; ++ i) 
  14.  для (int j = 0; j 
  15.  sum + = arr [i ] [j]; 
  16.  БистСма. out.print (сумма); 
  17. } 
  18. } 

Π°) 11
Π±) 10
Π²) 13
Π³) 14
ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚

ΠžΡ‚Π²Π΅Ρ‚: Π±
ПояснСниС: arr [] [] - это 2D-массив, Π² массивС Π²Ρ‹Π΄Π΅Π»Π΅Π½Π° ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΠΎ частям. 1-я строка содСрТит 1 элСмСнт, 2-я строка содСрТит 2 элСмСнта ΠΈ 3-я строка содСрТит 3 элСмСнта. ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту массива Π² Ρ†ΠΈΠΊΠ»Π΅ присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ i + j. sum содСрТит слоТСниС всСх элСмСнтов массива.
Π²Ρ‹Ρ…ΠΎΠ΄:
 $ javac multidimention_array.Π―Π²Π°
$ java multidimention_array
10 

8. Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π° Java?

  1.  class ΠΎΡ†Π΅Π½ΠΊΠ° 
  2.  {
  3.  public static void main (String args []) 
  4.  {
  5.  int arr [] = new int [] {0, 1, 2, 3 , 4, 5, 6, 7, 8, 9}; 
  6.  int n = 6; 
  7.  n = arr [arr [n] / 2]; 
  8.  БистСма.out.println (arr [n] / 2); 
  9. } 
  10. } 

a) 3
b) 0
c) 6
d) 1
ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚

ΠžΡ‚Π²Π΅Ρ‚: d
ОбъяснСниС: Массив arr содСрТит 10 элСмСнтов. n содСрТит 6, поэтому Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС n даСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 3, ΠΏΠ΅Ρ‡Π°Ρ‚Π°ΡŽΡ‰Π΅Π΅ arr [3] / 2 i: e 3/2 = 1 ΠΈΠ·-Π·Π° значСния int, ΠΏΠΎ значСниям int Π½Π΅Ρ‚ остатка. Если Π±Ρ‹ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ ΠΏΠ»Π°Π²Π°ΡŽΡ‰ΠΈΠΌ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±Ρ‹Π»ΠΎ Π±Ρ‹ 1,5.
Π²Ρ‹Ρ…ΠΎΠ΄:
 $ javac Assessment.java
$ java ΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ
1 

9.Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π° Java?

  1.  class array_output 
  2.  {
  3.  public static void main (String args []) 
  4.  {
  5.  char array_variable [] = new char [10]; 
  6.  для (int i = 0; i <10; ++ i) 
  7.  {
  8.  array_variable [i] = 'i'; 
  9.  БистСма.out.print (пСрСмСнная_массива [я] + ""); 
  10. } 
  11. } 
  12. } 

a) 1 2 3 4 5 6 7 8 9 10
b) 0 1 2 3 4 5 6 7 8 9 10
c) i j k l m n o p q r
d) i i i i i i i i i i i
ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚

ΠžΡ‚Π²Π΅Ρ‚: d
ПояснСниС: НСт.
Π²Ρ‹Ρ…ΠΎΠ΄:
 $ javac array_output.java
$ java array_output
я я я я я я я я я я я 

10. Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π° Java?

  1.  class array_output 
  2.  {
  3.  public static void main (String args []) 
  4.  {
  5.  int array_variable [] [] = {{1, 2, 3}, { 4, 5, 6}, {7, 8, 9}}; 
  6.  int sum = 0; 
  7.  для (int i = 0; i <3; ++ i) 
  8.  для (int j = 0; j <3; ++ j) 
  9.  sum = sum + array_variable [i] [j]; 
  10.  БистСма.out.print (сумма / 5); 
  11. } 
  12. } 

Π°) 8
Π±) 9
Π²) 10
Π³) 11
ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚

ΠžΡ‚Π²Π΅Ρ‚: Π±
ПояснСниС: НСт.
Π²Ρ‹Ρ…ΠΎΠ΄:
 $ javac array_output.java
$ java array_output
9 

Sanfoundry Global Education & Learning Series - Π―Π·Ρ‹ΠΊ программирования Java.

ΠŸΡ€ΠΈΠΌΠΈΡ‚Π΅ участиС Π² конкурсС сСртификации Sanfoundry, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π±Π΅ΡΠΏΠ»Π°Ρ‚Π½ΡƒΡŽ ΠŸΠΎΡ‡Π΅Ρ‚Π½ΡƒΡŽ Π³Ρ€Π°ΠΌΠΎΡ‚Ρƒ.ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΊ нашим ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ сСтям Π½ΠΈΠΆΠ΅ ΠΈ Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π² курсС послСдних конкурсов, Π²ΠΈΠ΄Π΅ΠΎ, стаТировок ΠΈ вакансий!

ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивами

ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивами

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅

Массив прСдставляСт собой индСксированный Π½Π°Π±ΠΎΡ€ элСмСнтов Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.
1) Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ элСмСнты массива ΠΏΡ€ΠΎΠ½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Ρ‹ (начиная с 0).
2) ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½ΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ массивы хранятся Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ячСйках памяти. КаТдая ячСйка Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° (ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°).

ОбъявлСниС массивов:

ОбъявлСниС массива ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ объявлСния (typeName variableName), Π½ΠΎ ΠΌΡ‹ добавляСм Ρ€Π°Π·ΠΌΠ΅Ρ€:
    typeName variableName  [Ρ€Π°Π·ΠΌΠ΅Ρ€  ];
 

ΠžΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ массив с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ с ΠΈΠΌΠ΅Π½Π΅ΠΌ variableName , Ρ‚ΠΈΠΏΠ° Ρ‚ΠΈΠΏ НаимСнованиС . Массив проиндСксирован с 0 ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ€-1 . Π Π°Π·ΠΌΠ΅Ρ€ (Π² скобках) Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ цСлочислСнным Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠΌ ΠΈΠ»ΠΈ постоянная пСрСмСнная.ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, сколько мСста Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ (Ρ‚.Π΅. сколько Π±Π°ΠΉΡ‚ΠΎΠ²).

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

  int list [30]; // массив ΠΈΠ· 30 Ρ†Π΅Π»Ρ‹Ρ… чисСл
  имя символа [20]; // массив из 20 символов
  Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ числа [50]; // массив ΠΈΠ· 50 Π·Π½Π°ΠΊΠΎΠ² послС запятой
  int table [5] [10]; // Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Ρ†Π΅Π»Ρ‹Ρ… чисСл
 

ПослСдний ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ часто нравится Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π΅). ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΡ‹ Π΄ΡƒΠΌΠ°Π΅ΠΌ ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ ΠΊΠ°ΠΊ строки, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ°ΠΊ столбцы, Π½ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ это Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ значСния, Ссли ΠΊΠ°ΠΊ Π²Ρ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹! Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ послСднСм объявлСнии Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Π²ΠΈΠ΄Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ с 5 строками ΠΈ 10 столбцами.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ массивов:

Π‘ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΉ строкС, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:
  int x;
  Ρ… = 0;
 

Или ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ просто ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² объявлСнии сам:

  int x = 0;
 

МоТСм Π»ΠΈ ΠΌΡ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅ самоС с массивами? Π”Π°, для встроСнных Ρ‚ΠΈΠΏΠΎΠ². ΠŸΡ€ΠΎΡΡ‚ΠΎ пСрСчислитС массив значСния (Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹) Π² ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ Π½Π°Π±ΠΎΡ€Π° {} послС объявлСния. Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

  int list [4] = {2, 4, 6, 8};
  ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π±ΡƒΠΊΠ²Ρ‹ [5] = {'a', 'e', ​​'i', 'o', 'u'};
  Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ числа [3] = {3.45, 2.39, 9.1};
  int table [3] [2] = {{2, 5}, {3,1}, {4,9}};
 

Π‘Ρ‚Ρ€ΡƒΠ½Ρ‹ Π² стилС C

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Ρ‚ΠΈΠΏΠ° char - особыС случаи.
  • ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ строки часто, Π½ΠΎ Π½Π΅Ρ‚ встроСнного строкового Ρ‚ΠΈΠΏΠ° Π½Π° языкС
  • Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π² стилС C Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΊΠ°ΠΊ массив Ρ‚ΠΈΠΏΠ° char, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ заканчиваСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ символом, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΌ "null" пСрсонаТ".
    • НулСвой символ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ASCII 0
    • НулСвой символ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ записан ΠΊΠ°ΠΊ Π»ΠΈΡ‚Π΅Ρ€Π°Π» Π² ΠΊΠΎΠ΄Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: '\ 0'
  • ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ строковый Π»ΠΈΡ‚Π΅Ρ€Π°Π» (Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ…) нСявно содСрТит Π½ΡƒΠ»Π΅Π²ΠΎΠΉ символ Π² ΠΊΠΎΠ½Ρ†Π΅

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ массивы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для хранСния строк Π² стилС C, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив символов строковым Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠΌ (Ρ‚. Π΅.Π΅. строка Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ), ΠΏΠΎΠΊΠ° Π²Ρ‹ оставляСтС мСсто для Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ символа Π² Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ пространство.

  char name [7] = "Π”ΠΆΠΎΠ½Π½ΠΈ";
 

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ это Π±ΡƒΠ΄Π΅Ρ‚ эквивалСнтно:

  char name [7] = {'J', 'o', 'h', 'n', 'n', 'y', '\ 0'};
 

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

ОбъявлСния массивов Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива. МоТно ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π²Π½Π΅ [] Π² объявлСнии Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π²Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ встроСнный массив, Π² этом случаС массив дСлаСтся достаточно большим для Π·Π°Ρ…Π²Π°Ρ‚Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ Π΄Π°Π½Π½Ρ‹Π΅.ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

  char name [] = "Π”ΠΆΠΎΠ½Π½ΠΈ"; // Ρ€Π°Π·ΠΌΠ΅Ρ€ 7
  int list [] = {1, 3, 5, 7, 9}; // Ρ€Π°Π·ΠΌΠ΅Ρ€ 5
 

Π”Ρ€ΡƒΠ³ΠΎΠΉ способ сокращСния Π½Π°Π±ΠΎΡ€ΠΎΠ² ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ² - ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ мСньшС элСмСнтов, Ρ‡Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ уточняСт. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ элСмСнты Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π°Π²Π½Ρ‹ 0. Π­Ρ‚ΠΎ Π½Π΅Π·Π°ΠΊΠΎΠ½Π½ΠΎ. ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€, содСрТащий Π½Π° элСмСнтов большС, Ρ‡Π΅ΠΌ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€.

  int list [5] = {1, 2}; // массив: {1, 2, 0, 0, 0}
  int nums [3] = {1, 2, 3, 4}; // нСзаконноС объявлСниС. 
 

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ Π² объявлСнии, ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, являСтся вСроятно, Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ Ρ‚Π°ΠΊ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ с ΠΎΡ‡Π΅Π½ΡŒ большими массивами.
Π”Ρ€ΡƒΠ³ΠΎΠΉ распространСнный способ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ массива - с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° для :
Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ инициализируСтся массив numList ΠΊΠ°ΠΊ {0, 2, 4, 6, 8, 10, 12, 14, 16, 18}.

  int numList [10];
  int i;
  для (i = 0; i

 

ИспользованиС массивов:

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ваши массивы ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ доступ ΠΊ элСмСнтам Π² массивС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ имя массива ΠΈ Π½ΠΎΠΌΠ΅Ρ€ индСкса Π² скобках []. Если массив ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ: typeName varName [size] , Π·Π°Ρ‚Π΅ΠΌ элСмСнт с индСксом n обозначаСтся ΠΊΠ°ΠΊ varName [n] .ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:
  int x, список [5]; // объявлСниС
  Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ числа [10]; // объявлСниС

  список [3] = 6; // присваиваСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 6 элСмСнту массива с индСксом 3
  cout

 

Однако Π±Ρ‹Π»ΠΎ Π±Ρ‹ нСцСлСсообразно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ индСкс массива, Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ допустимых индСксов массива:

  список [5] = 10; // ΠΏΠ»ΠΎΡ…ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ваши Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ индСксы 0 - 4. 
 

Однако ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π²Ρ‹ΡˆΠ΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ синтаксичСски Π·Π°ΠΊΠΎΠ½Π½ΠΎ . Π­Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π° программиста - ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ индСксы Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌΠΈ Π½Π΅ использовались.НС рассчитывайтС, Ρ‡Ρ‚ΠΎ компилятор ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ это Π·Π° вас - ΠΎΠ½ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚!

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

Если Ρƒ нас Π΅ΡΡ‚ΡŒ эти Π΄Π²Π° массива, ΠΊΠ°ΠΊ Π½Π°ΠΌ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ содСрТимоС list2 Π² список1?
  int list1 [5];
  int list2 [5] = {3, 5, 7, 9, 11};
 

Π‘ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ присваивания, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ это Π±ΡƒΠ΄Π΅Ρ‚ СстСствСнная тСндСнция - Π½ΠΎ это Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ!

  список1 = список2; // это НЕ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ содСрТимоС массива
 

ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ массивами поэлСмСнтно. для ΡˆΠ»Π΅ΠΉΡ„Π° Π΄Π΅Π»Π°Π΅Ρ‚ это Π»Π΅Π³ΠΊΠΎ:

  для (int i = 0; i
 

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ Π²Π²ΠΎΠ΄-Π²Ρ‹Π²ΠΎΠ΄ со строками:

Π’ особом случаС строк (массивы символов с Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΌ Π½ΡƒΠ»Π΅ΠΌ) ΠΎΠ½ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ массивы. Доступ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ элСмСнту массива ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ доступ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ пСрсонаТу.
  символ привСтствия [] = "ΠŸΡ€ΠΈΠ²Π΅Ρ‚";
  char word1 [20];

  cout << привСтствиС [1]; // ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ Π±ΡƒΠΊΠ²Ρƒ 'e'
  cout << привСтствиС [4]; // ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ Π±ΡƒΠΊΠ²Ρƒ 'ΠΎ'
 

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΈ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ со стандартным ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π²Π²ΠΎΠ΄Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° (cin ΠΈ cout):
Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ строка Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ слово Β«HelloΒ»:

  cout << привСтствиС;
 
Π‘ΡƒΠ΄ΡŒΡ‚Π΅ остороТны, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ использовал это Π² массивах символов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Π‘Ρ‚Ρ€ΡƒΠ½Ρ‹ Π² стилС Π‘.