ИзмСнСниС Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π² массивС java. Java массивы. ΠžΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив nums1

ΠœΠ°ΡΡΠΈΠ²Ρ‹ (arrays) _ это упорядочСнныС Π½Π°Π±ΠΎΡ€Ρ‹ элСмСнтов ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ массива ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ простых ΠΈ ссылочных Ρ‚ΠΈΠΏΠΎΠ², Π² Ρ‚ΠΎΠΌ ЧислС ΠΈ ссылки Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ массивы. ΠœΠ°ΡΡΠΈΠ²Ρ‹ сами ΠΏΠΎ сСбС ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈ

Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ класс Object. ОбъявлСниС

int ia = new int;

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ массив с ΠΈΠΌΠ΅Π½Π΅ΠΌ ia, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π½Π°Π±ΠΎΡ€ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ‚ΠΈΠΏΠ° int.

Π’ объявлСнии массива Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ Π½Π΅ указываСтся. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ элСмСнтов массива задаСтся ΠΏΡ€ΠΈ Π΅Π³ΠΎ создании посрСдством ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° new. Π”Π»ΠΈΠ½Π° массива фиксируСтся Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ создания ΠΈ Π² дальнСйшСм измСнСнию Π½Π΅ поддаСтся. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° массива (Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ – ia) Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ поставлСн Π² соотвСтствиС Π½ΠΎΠ²Ρ‹ΠΉ массив с Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ.

Доступ ΠΊ элСмСнтам массива осущСствляСтся ΠΏΠΎ значСниям ΠΈΡ… Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ²-индСксов.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт массива ΠΈΠΌΠ΅Π΅Ρ‚ индСкс, Ρ€Π°Π²Π½Ρ‹ΠΉ Π½ΡƒΠ»ΡŽ (0), Π° послСдний – length – 1. ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ элСмСнту массива выполняСтся посрСдством задания ΠΈΠΌΠ΅Π½ΠΈ массива ΠΈ значСния индСкса, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки, [ ΠΈ ]. Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ элСмСнтом массива ia Π±ΡƒΠ΄Π΅Ρ‚ ia, Π° послСдним – ia. ΠŸΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ элСмСнту массива ΠΏΠΎ индСксу ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‰Π°Ρ систСма Java провСряСт, находится Π»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ индСкса Π² допустимых ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ…, ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° ArraylndexOutOfBoundsException, Ссли Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π»ΠΎΠΆΠ΅Π½. 6 Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ индСкса Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚ΡŒΡΡ ΠΊ Ρ‚ΠΈΠΏΡƒ int – Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этим ΠΈ ограничиваСтся максимальноС количСство элСмСнтов массива.

Π”Π»ΠΈΠ½Ρƒ массива Π»Π΅Π³ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ поля length ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° массива (ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ нСявно снабТСно ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠ°ΠΌΠΈ publiс ΠΈ final). НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€Π΅ΠΆΠ½Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ прСдусмотрСно Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π¦ΠΈΠΊΠ»Π°, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ Π²Ρ‹Π²ΠΎΠ΄ Π½Π° экран содСрТимого ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта массива ia:

for (int i = ΠΎ; i < ia.length; i++)

system.out.println(i + ": " + ia[i]);

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

ДопускаСтся ΠΈ иная Ρ„ΠΎΡ€ΠΌΠ° объявлСния массива, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки Π·Π°Π΄Π°ΡŽΡ‚ΡΡ послС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° массива, Π° Π½Π΅ послС наимСнования Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ°:

int ia = new int;

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

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Π² ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΡΡ… массивов

ΠŸΡ€Π°Π²ΠΈΠ»Π° употрСблСния Π² ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΡΡ… массивов Ρ‚Π΅Ρ… ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ ΠΈ зависят Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊ ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ относится массив – ΠΊ полям ΠΈΠ»ΠΈ Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ. БущСствуСт СдинствСнная ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, – ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊ массиву ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ²ΠΎΠΌΡƒ, Π½ΠΎ Π½Π΅ ΠΊ Π΅Π³ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ элСмСнтам. Если Π² объявлСнии массива ΡƒΠΊΠ°Π·Π°Π½ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ final, это Π·Π½Π°Ρ‡ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ссылка Π½Π° массив Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° послС Π΅Π³ΠΎ создания, Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ измСнСния содСрТимого ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов массива. Π―Π·Ρ‹ΠΊ Π½Π΅ позволяСт Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΡ… Π±Ρ‹ Ρ‚ΠΎ Π½ΠΈ Π±Ρ‹Π»ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² (скаТСм, final ΠΈΠ»ΠΈ ΡƒΠΎlatilΠ΅) для элСмСнтов массива.

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

Π’ Java поддСрТиваСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ объявлСния ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов (multidimensional arrays) (Ρ‚.Π΅. массивов, элСмСнтами ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… слуТат Π΄Ρ€ΡƒΠ³ΠΈΠ΅ массивы), Код, ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ объявлСниС Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ Π½Π° экран содСрТимого Π΅Π΅ элСмСнтов, ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°ΠΊ:

float mat = new float;

setupMatrix(mat);

for (int Ρƒ = ΠΎ; Ρƒ < mat.length; Ρƒ++) {

for (int Ρ… = ΠΎ; Ρ… < mat[y].length; Ρ…++)

system.out.print(mat[y][x] + " ");

system.out.println();

ΠŸΡ€ΠΈ создании массива Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π°, ΠΏΠΎ мСньшСй ΠΌΠ΅Ρ€Π΅, Π΅Π³ΠΎ пСрвая, "самая лСвая", Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ. Π”Ρ€ΡƒΠ³ΠΈΠ΅ размСрности Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Π½Π΅ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ – Π² этом случаС ΠΈΡ… придСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅. Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ new Π΅Π΄ΠΈΠ½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ всСх размСрностСй – это самый Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Ρ‹ΠΉ способ создания массива, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ нСобходимости использования Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² new. Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ объявлСния ΠΈ создания массива mat, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π²Ρ‹ΡˆΠ΅, Ρ€Π°Π²Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρƒ ΠΊΠΎΠ΄Π°:

float mat = new float;

for (int Ρƒ = ΠΎ; Ρƒ < mat.length; Ρƒ++)

mat[y] = new float;

Вакая Ρ„ΠΎΡ€ΠΌΠ° объявлСния ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Ρ‚Π΅ΠΌ прСимущСством, Ρ‡Ρ‚ΠΎ позволяСт наряду с ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ массивов с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ размСрностями (скаТСм, 4 Ρ… 4) ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈ массивы массивов Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… размСрностСй, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для хранСния Ρ‚Π΅Ρ… ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Ρ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ….

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

ΠŸΡ€ΠΈ создании массива ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π΅Π³ΠΎ элСмСнт ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, прСдусмотрСнноС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ зависящСС ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° массива: Π½ΡƒΠ»ΡŒ (0) – для числовых Ρ‚ΠΈΠΏΠΎΠ², β€˜\u0000β€² _ для char, false – для boolean ΠΈ null – для ссылочных Ρ‚ΠΈΠΏΠΎΠ². Объявляя массив ссылочного Ρ‚ΠΈΠΏΠ°, ΠΌΡ‹ Π½Π° самом Π΄Π΅Π»Π΅ опрСдСляСм массив ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… этого Ρ‚ΠΈΠΏΠ°. Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π°:

Attr attrs = new Attr;

for (int i = ΠΎ; i < attrs.length; i++)

attrs[i] = new Attr(names[i], values[i]);

ПослС выполнСния ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ выраТСния, содСрТащСго ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ new, пСрСмСнная attrs ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ссылку Π½Π° массив ΠΈΠ· 12 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ null, ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Attr ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ²Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ созданы Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² процСссС ΠΏΡ€ΠΎ хоТдСния Ρ†ΠΈΠΊΠ»Π°.

Массив ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ (ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с объявлСниСм) посрСдством конструкции Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобках, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ пСрСчислСны исходныС ЗначСния Π΅Π³ΠΎ элСмСнтов:

String dangers = { "Π›ΡŒΠ²Ρ‹", "Π’ΠΈΠ³Ρ€Ρ‹", "МСдвСди" };

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° даст Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

String dangers = new String; dangers = "Π›ΡŒΠ²Ρ‹";

dangers = "Π’ΠΈΠ³Ρ€Ρ‹";

dangers = "МСдвСди";

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

String dangers = new String { "Π›ΡŒΠ²Ρ‹", "Π’ΠΈΠ³Ρ€Ρ‹", "МСдвСди" };

ΠŸΠΎΠ΄ΠΎΠ±Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ объявлСния ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ массива Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π² любом мСстС ΠΊΠΎΠ΄Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°:

printStringsCnew String { "Ρ€Π°Π·", "Π΄Π²Π°", "Ρ‚Ρ€ΠΈ" });

Массив Π±Π΅Π· названия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаСтся Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹ΠΌ (anonymous).

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

int pascalsTriangle = {

{ 1, 4, 6, 4, 1 },

Π˜Π½Π΄Π΅ΠΊΡΡ‹ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Π² порядкС ΠΎΡ‚ внСшнСго ΠΊ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ. Π’Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, pascalsTriangle; // Массив ΠΈΠ· 5 элСмСнтов double ar2 = {3.14, 2.71, 0, -2.5, 99.123}; // Массив ΠΈΠ· 6 элСмСнтов Ρ‚ΠΈΠΏΠ° double Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈ создании массива ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€, Π»ΠΈΠ±ΠΎ сразу ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ всС ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹Π΅ элСмСнты Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобках (ΠΏΡ€ΠΈ этом Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ вычислСн автоматичСски Π½Π° основС Ρ‚ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ элСмСнтов, которая Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½Π°). ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС послС Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ„ΠΈΠ³ΡƒΡ€Π½ΠΎΠΉ скобки ставится Ρ‚ΠΎΡ‡ΠΊΠ° с запятой, Ρ‡Π΅Π³ΠΎ Π½Π΅ Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠ³Π΄Π° это скобка Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π±Π»ΠΎΠΊ.

Если массив Π±Ρ‹Π» создан с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° new , Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π΅Π³ΠΎ элСмСнт ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Каким ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ опрСдСляСтся Π½Π° основании Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… (0 для int, 0.0 для double ΠΈ Ρ‚. Π΄.).

ΠžΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ имя для массива ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ сам массив ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ строкС ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ схСмС: Ρ‚ΠΈΠΏ имя = new Ρ‚ΠΈΠΏ[Ρ€Π°Π·ΠΌΠ΅Ρ€]; Ρ‚ΠΈΠΏ имя = {эл0, эл1, …, элN}; ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹: int mas1 = {10,20,30}; int mas2 = new int;

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

System.out.println("ПослСдний элСмСнт массива " + mas1);

А Π²ΠΎΡ‚ Ρ‚Π°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π² массив mas2 Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π½Π°Π±ΠΎΡ€ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎ хранится Π² mas1:

Mas2 = 10; mas2 = 20; mas2 = 30;Π£ΠΆΠ΅ ΠΈΠ· этого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ± ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊΠΎ всСм элСмСнтам массива, Π½Π°ΠΌ приходится ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Π΅ дСйствия. Как Π²Ρ‹ ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ для ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ повторСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ†ΠΈΠΊΠ»Ρ‹. БоотвСтствСнно, ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ массив Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ элСмСнтами с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π°: for(int i=0; iΠŸΠΎΠ½ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ссли Π±Ρ‹ массив Ρƒ нас Π±Ρ‹Π» Π½Π΅ ΠΈΠ· 3, Π° ΠΈΠ· 100 элСмСнтов, Π΄ΠΎ Π±Π΅Π· Ρ†ΠΈΠΊΠ»Π° ΠΌΡ‹ Π±Ρ‹ просто Π½Π΅ ΡΠΏΡ€Π°Π²ΠΈΠ»ΠΈΡΡŒ.

Π”Π»ΠΈΠ½Ρƒ любого созданного массива Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ имССтся свойство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΅Π³ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ этому свойству ΠΌΠΎΠΆΠ½ΠΎ дописав.length ΠΊ ΠΈΠΌΠ΅Π½ΠΈ массива. НапримСр:

Int razmer = mas1.length; Π­Ρ‚ΠΎ свойство нСльзя ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ (Ρ‚. Π΅. Π΅ΠΌΡƒ нСльзя Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ), ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ это свойство ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ массива Π΄Π°ΠΆΠ΅ Π½Π΅ зная Π΅Π³ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°.

НапримСр, Ρ‚Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ вывСсти Π½Π° экран элСмСнты любого массива с ΠΈΠΌΠ΅Π½Π΅ΠΌ ar2:

For(int i = 0; i <= ar2.length - 1; i++) { System.out.print(ar2[i] + " "); } Для краткости ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΌΠ΅Π½ΡΡ‚ΡŒ нСстрогоС нСравСнство Π½Π° строгоС, Ρ‚ΠΎΠ³Π΄Π° Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ ΠΈΠ· Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΠΌ массив Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами ΠΎΡ‚ 0 Π΄ΠΎ 9 ΠΈ Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ Π΅Π³ΠΎ Π½Π° экран: for(int i = 0; i < ar1.length; i++) {ar1[i] = Math.floor(Math.random() * 10); System.out.print(ar1[i] + " "); }

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС Ρ†ΠΈΠΊΠ»Π° ΠΌΡ‹ сначала отправляли случайноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² элСмСнт массива с i-Ρ‹ΠΌ индСксом, Π° ΠΏΠΎΡ‚ΠΎΠΌ этот ΠΆΠ΅ элСмСнт Π²Ρ‹Π²ΠΎΠ΄ΠΈΠ»ΠΈ Π½Π° экран. Но Π΄Π²Π° процСсса (наполнСния ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π°) ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈ Π² Ρ€Π°Π·Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»Π°Ρ…. НапримСр:

For(int i = 0; i < ar1.length; i++) { ar1[i] = Math.floor(Math.random() * 9); } for(int i = 0; i < ar1.length; i++) { System.out.print(ar1[i] + " "); } Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»Π΅Π½ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ способ (ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ ΠΏΠΎ массиву вмСсто Π΄Π²ΡƒΡ…), Π½ΠΎ Π½Π΅ всСгда Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ дСйствия Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅.

Для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ массивов всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ†ΠΈΠΊΠ»Ρ‹ Ρ‚ΠΈΠΏΠ° Β«n Ρ€Π°Π·Β» (for) ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π·Π°Ρ€Π°Π½Π΅Π΅ извСстно сколько Ρ€Π°Π· Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒΡΡ Ρ†ΠΈΠΊΠ» (ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΆΠ΅ Ρ€Π°Π·, сколько элСмСнтов Π² массивС).

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

    Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ массив ΠΈΠ· всСх Ρ‡Ρ‘Ρ‚Π½Ρ‹Ρ… чисСл ΠΎΡ‚ 2 Π΄ΠΎ 20 ΠΈ Π²Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ элСмСнты массива Π½Π° экран сначала Π² строку, отдСляя ΠΎΠ΄ΠΈΠ½ элСмСнт ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠΌ, Π° Π·Π°Ρ‚Π΅ΠΌ Π² столбик (отдСляя ΠΎΠ΄ΠΈΠ½ элСмСнт ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π½Π°Ρ‡Π°Π»ΠΎΠΌ Π½ΠΎΠ²ΠΎΠΉ строки). ΠŸΠ΅Ρ€Π΅Π΄ созданиСм массива ΠΏΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅, ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°.

    2 4 6 … 18 20
    2
    4
    6
    …
    20

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

    Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ массив ΠΈΠ· 15 случайных Ρ†Π΅Π»Ρ‹Ρ… чисСл ΠΈΠ· ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ° . Π’Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ массив Π½Π° экран. ΠŸΠΎΠ΄ΡΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ сколько Π² массивС Ρ‡Ρ‘Ρ‚Π½Ρ‹Ρ… элСмСнтов ΠΈ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚Π΅ это количСство Π½Π° экран Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ строкС.

    Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ массив ΠΈΠ· 8 случайных Ρ†Π΅Π»Ρ‹Ρ… чисСл ΠΈΠ· ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ° . Π’Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ массив Π½Π° экран Π² строку. Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт с Π½Π΅Ρ‡Ρ‘Ρ‚Π½Ρ‹ΠΌ индСксом Π½Π° ноль. Π‘Π½ΠΎΠ²Π° Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚Π΅ массив Π½Π° экран Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ строкС.

    Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ 2 массива ΠΈΠ· 5 случайных Ρ†Π΅Π»Ρ‹Ρ… чисСл ΠΈΠ· ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ, Π²Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ массивы Π½Π° экран Π² Π΄Π²ΡƒΡ… ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… строках. ΠŸΠΎΡΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ срСднСС арифмСтичСскоС элСмСнтов ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ массива ΠΈ сообщитС, для ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΈΠ· массивов это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ оказалось большС (Π»ΠΈΠ±ΠΎ сообщитС, Ρ‡Ρ‚ΠΎ ΠΈΡ… срСдниС арифмСтичСскиС Ρ€Π°Π²Π½Ρ‹).

    Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ массив ΠΈΠ· 4 случайных Ρ†Π΅Π»Ρ‹Ρ… чисСл ΠΈΠ· ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ° , Π²Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π½Π° экран Π² строку. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈ вывСсти Π½Π° экран сообщСниС ΠΎ Ρ‚ΠΎΠΌ, являСтся Π»ΠΈ массив строго Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°ΡŽΡ‰Π΅ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ.

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

    Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ массив ΠΈΠ· 12 случайных Ρ†Π΅Π»Ρ‹Ρ… чисСл ΠΈΠ· ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ° [-15;15]. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΊΠ°ΠΊΠΎΠΉ элСмСнт являСтся Π² этом массивС ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ сообщитС индСкс Π΅Π³ΠΎ послСднСго вхоТдСния Π² массив.

    Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π΄Π²Π° массива ΠΈΠ· 10 Ρ†Π΅Π»Ρ‹Ρ… случайных чисСл ΠΈΠ· ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ° ΠΈ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ массив ΠΈΠ· 10 Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… чисСл. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт с i-Ρ‹ΠΌ индСксом Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ массива Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°Π²Π½ΡΡ‚ΡŒΡΡ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ элСмСнта ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ массива с i-Ρ‹ΠΌ индСксом ΠΊ элСмСнту ΠΈΠ· Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ массива с i-Ρ‹ΠΌ индСксом. ВывСсти всС Ρ‚Ρ€ΠΈ массива Π½Π° экран (ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ строкС), Π·Π°Ρ‚Π΅ΠΌ вывСсти количСство Ρ†Π΅Π»Ρ‹Ρ… элСмСнтов Π² Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌ массивС.

    Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ массив ΠΈΠ· 11 случайных Ρ†Π΅Π»Ρ‹Ρ… чисСл ΠΈΠ· ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ° [-1;1], Π²Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ массив Π½Π° экран Π² строку. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΊΠ°ΠΊΠΎΠΉ элСмСнт встрСчаСтся Π² массивС Ρ‡Π°Ρ‰Π΅ всСго ΠΈ Π²Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΎΠ± этом сообщСниС Π½Π° экран. Если Π΄Π²Π° ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ элСмСнта Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ количСство Ρ€Π°Π·, Ρ‚ΠΎ Π½Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚Π΅ Π½ΠΈΡ‡Π΅Π³ΠΎ.

    ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ Ρ‡Ρ‘Ρ‚Π½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ число, Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈΠ· случайных Ρ†Π΅Π»Ρ‹Ρ… чисСл ΠΈΠ· [-5;5] ΠΈ вывСсти Π΅Π³ΠΎ Π½Π° экран Π² строку. ПослС этого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΎ Ρ‚ΠΎΠΌ, сумма ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ‹ массива большС: Π»Π΅Π²ΠΎΠΉ ΠΈΠ»ΠΈ ΠΏΡ€Π°Π²ΠΎΠΉ, Π»ΠΈΠ±ΠΎ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ эти суммы ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Ρ€Π°Π²Π½Ρ‹. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²Π΅Π΄Ρ‘Ρ‚ нСподходящСС число, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

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

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

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

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

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ сортировки ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π² массивС Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡ‚ΠΎΡΡ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт, Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ - больший ΠΈΠ»ΠΈ Ρ€Π°Π²Π½Ρ‹ΠΉ ΠΈ Ρ‚. Π΄., Π½Π° послСднСм мСстС Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡ‚ΠΎΡΡ‚ΡŒ наибольший элСмСнт.Π‘ΡƒΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Ρ‚Π°ΠΊΠΎΠ²Π°. Π’ΠΎ всём отыскиваСм ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт, мСняСм Π΅Π³ΠΎ мСстами с Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ. Π—Π°Ρ‚Π΅ΠΌ Π² ΠΎΡΡ‚Π°Π²ΡˆΠ΅ΠΉΡΡ части массива (Ρ‚. Π΅. срСди всСх элСмСнтов ΠΊΡ€ΠΎΠΌΠ΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ) снова отыскиваСм ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт, мСняСм Π΅Π³ΠΎ мСстами ΡƒΠΆΠ΅ со Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ элСмСнтом Π² массивС. И Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ:

For (int i = 0; i

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠ°

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

2 9 1 4 3 5 2 β†’ порядок ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ, Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ пСрСстановки

2 9 1 4 3 5 2 β†’ 2 1 9 4 3 5 2

2 1 9 4 3 5 2 β†’ 2 1 4 9 3 5 2

2 1 4 9 3 5 2 β†’ 2 1 4 3 9 5 2

2 1 4 3 9 5 2 β†’ 2 1 4 3 5 9 2

2 1 4 3 5 9 2 β†’ 2 1 4 3 5 2 9

Код: /* Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Ρ†ΠΈΠΊΠ» постоянно суТаСт Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ массива, * ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ, вСдь послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π° * Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ Ρ†ΠΈΠΊΠ»Π° Π½Π° послСднСм мСстС Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ * ΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π½ΡƒΠΆΠ½Ρ‹ΠΉ элСмСнт (Π΅Π³ΠΎ Π½Π΅ Π½Π°Π΄ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ снова). */ for (int i = a.length - 1; i >= 2; i--) { /* Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ sorted ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ Ρ‚ΠΎΠ³ΠΎ, * отсортирован Π»ΠΈ массив. ΠŸΠ΅Ρ€Π΅Π΄ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΎΠΌ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ * Ρ†ΠΊΠ»Π° Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ отсортирован, Π½ΠΎ Ссли ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΠΌ * Ρ…ΠΎΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ пСрСстановку, Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ Π΅Ρ‰Ρ‘ Π½Π΅ ΠΊΠΎΠ½Ρ†Π° отсортирован. * Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΡ‘ΠΌ, ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰ΠΈΠΉ сортировку, называСтся ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅ΠΌ АйвСрсона. */ boolean sorted = true; /* Π’ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ Ρ†ΠΈΠΊΠ»Π΅ ΠΌΡ‹ проходимся ΠΏΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρƒ массива, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ * опрСдСляСтся внСшним Ρ†ΠΈΠΊΠ»ΠΎΠΌ. Π’ этом Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ ΠΌΡ‹ устанавливаСм * ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ порядок ΠΌΠ΅ΠΆΠ΄Ρƒ сосСдними элСмСнтами, Ρ‚Π°ΠΊ ΠΏΠΎΠΏΠ°Ρ€Π½ΠΎ * обрабатывая вСсь Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚. */ for (int j = 0; j a) { int temp = a[j]; a[j] = a; a = temp; sorted = false; } } /* Если массив отсортирован (Ρ‚.Π΅. Π½Π΅ Π±Ρ‹Π»ΠΎ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ пСрСстановки * Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ Ρ†ΠΈΠΊΠ»Π΅, Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ внСшнСго * Ρ†ΠΈΠΊΠ»Π°. */ if(sorted) { break; } }

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

Массив ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· элСмСнтов ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ встроСнного Ρ‚ΠΈΠΏΠ° (int, double ΠΈ ΠΏΡ€.), Π½ΠΎ ΠΈ, Π² Ρ‚ΠΎΠΌ числС, ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ класса ΠΈ Π΄Π°ΠΆΠ΅ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… массивов.

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

БоотвСтствСнно, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ элСмСнту n-ΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ n индСксов.

ΠžΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ массивы Ρ‚Π°ΠΊ: int d1; //ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ, ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ int d2; //Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ double d3; //Π’Ρ€Ρ‘Ρ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ int d5; //ΠŸΡΡ‚ΠΈΠΌΠ΅Ρ€Π½Ρ‹ΠΉ ΠŸΡ€ΠΈ создании массива ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ явно Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΅Π³ΠΎ уровня: d2 = int; // ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠΈΠ· 3 строк ΠΈ 4 столбцов Но ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ уровня: int dd2 = int; /* ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠΈΠ· 5 строк. Бколько элСмСнтов Π±ΡƒΠ΄Π΅Ρ‚ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС ΠΏΠΎΠΊΠ° Π½Π΅ извСстно. */ Π’ послСднСм случаС, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΅Π³ΠΎ строкС Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π½ΠΎΠ΅ количСство элСмСнтов. НапримСр: for(int i=0; i<5; i++) { dd2[i] = new int; } Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ‚Π°ΠΊΠΎΠΉ Π²ΠΎΡ‚ массив: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ΠœΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив явно ΡƒΠΊΠ°Π·Π°Π² Π΅Π³ΠΎ элСмСнты. НапримСр Ρ‚Π°ΠΊ: int ddd2 = {{1,2}, {1,2,3,4,5}, {1,2,3}};

ΠŸΡ€ΠΈ этом ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ элСмСнту с индСксом 4 Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ строкС ddd2 , Π½ΠΎ Ссли ΠΌΡ‹ обратимся ΠΊ элСмСнту ddd2 ΠΈΠ»ΠΈ ddd2 - ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚ ошибка, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‚Π°ΠΊΠΈΡ… элСмСнтов просто Π½Π΅Ρ‚. ΠŸΡ€ΠΈΡ‚ΠΎΠΌ ошибка это Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΡƒΠΆΠ΅ Π²ΠΎ врСмя исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Ρ‚. Π΅. компилятор Π΅Ρ‘ Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚).

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ всё ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы с Ρ€Π°Π²Π½Ρ‹ΠΌ количСством элСмСнтов Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС.Для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π²Π° Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ Π² Π΄Ρ€ΡƒΠ³Π° Ρ†ΠΈΠΊΠ»Π° с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ счётчиками.ΠŸΡ€ΠΈΠΌΠ΅Ρ€ (заполняСм Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив случайными числами ΠΎΡ‚ 0 Π΄ΠΎ 9 ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π΅Π³ΠΎ Π½Π° ΠΆΠΊΡ€Π°Π½ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹): int da = new int; for(int i=0; i

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

    Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив ΠΈΠ· 8 строк ΠΏΠΎ 5 столбцов Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· случайных Ρ†Π΅Π»Ρ‹Ρ… чисСл ΠΈΠ· ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ° . ВывСсти массив Π½Π° экран.

    Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив ΠΈΠ· 5 строк ΠΏΠΎ 8 столбцов Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· случайных Ρ†Π΅Π»Ρ‹Ρ… чисСл ΠΈΠ· ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ° [-99;99]. ВывСсти массив Π½Π° экран. ПослС Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ строкС вывСсти Π½Π° экран Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ максимального элСмСнта этого массива (Π΅Π³ΠΎ индСкс Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ значСния).

    CΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив ΠΈΠ· 7 строк ΠΏΠΎ 4 столбца Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· случайных Ρ†Π΅Π»Ρ‹Ρ… чисСл ΠΈΠ· ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ° [-5;5]. ВывСсти массив Π½Π° экран. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈ вывСсти Π½Π° экран индСкс строки с наибольшим ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ элСмСнтов. Если Ρ‚Π°ΠΊΠΈΡ… строк нСсколько, Ρ‚ΠΎ вывСсти индСкс ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΠ²ΡˆΠ΅ΠΉΡΡ ΠΈΠ· Π½ΠΈΡ….

    Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив ΠΈΠ· 6 строк ΠΏΠΎ 7 столбцов Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· случайных Ρ†Π΅Π»Ρ‹Ρ… чисСл ΠΈΠ· ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ° . ВывСсти массив Π½Π° экран. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ массив Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ мСстС Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС стоял Π΅Ρ‘ наибольший элСмСнт. ΠŸΡ€ΠΈ этом ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ состав массива нСльзя, Π° ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ элСмСнты Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠΉ строки. ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов строки Π½Π΅ Π²Π°ΠΆΠ΅Π½ (Ρ‚.Π΅. ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ²Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ пСрСстановку, Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ строку). ВывСсти ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ массив Π½Π° экран.

    Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ остаточных Π·Π½Π°Π½ΠΈΠΉ ΡƒΡ‡Π΅Π½ΠΈΠΊΠΎΠ² послС Π»Π΅Ρ‚Π½ΠΈΡ… ΠΊΠ°Π½ΠΈΠΊΡƒΠ», ΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ ΠΌΠ»Π°Π΄ΡˆΠΈΡ… классов Ρ€Π΅ΡˆΠΈΠ» Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ с Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΡƒΡ‡Π΅Π½ΠΈΠΊΡƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ умноТСния, Π½ΠΎ Π² классС 15 Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ срСди Π½ΠΈΡ… Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒΡΡ. Π’ ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŽ Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° экран 15 случайных ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ умноТСния (ΠΎΡ‚ 2*2 Π΄ΠΎ 9*9, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ задания ΠΏΠΎ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡŽ Π½Π° 1 ΠΈ Π½Π° 10 - слишком просты). ΠŸΡ€ΠΈ этом срСди 15 ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ (ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ 2*3 ΠΈ 3*2 ΠΈ ΠΈΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΏΠ°Ρ€Ρ‹ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠΌΠΈΡΡ).

2010, АлСксСй НиколаСвич ΠšΠΎΡΡ‚ΠΈΠ½. ΠšΠ°Ρ„Π΅Π΄Ρ€Π° Π’Π˜Π”Πœ матСматичСского Ρ„Π°ΠΊΡƒΠ»ΡŒΡ‚Π΅Ρ‚Π° ΠœΠŸΠ“Π£.


Π£Ρ‡Π΅Π±Π° Π½Π° "Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΈΠ³Ρ€" + трудоустройство

Java массивы

Массив - это структура Π΄Π°Π½Π½Ρ‹Ρ…, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ хранятся Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Доступ ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ элСмСнту массива осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†Π΅Π»ΠΎΠ³ΠΎ индСкса. НапримСр, Ссли Π° - массив Ρ†Π΅Π»Ρ‹Ρ… чисСл, Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ выраТСния Π° [ i ] Ρ€Π°Π²Π½ΠΎ i-ΠΌΡƒ Ρ†Π΅Π»ΠΎΠΌΡƒ числу Π² массивС.

Массив ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: сначала указываСтся Ρ‚ΠΈΠΏ массива, Ρ‚.Π΅ Ρ‚ΠΈΠΏ элСмСнтов, содСрТащихся Π² массивС, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ставится ΠΏΠ°Ρ€Π° пустых ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобок, Π° Π·Π°Ρ‚Π΅ΠΌ - имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. НапримСр, Π²ΠΎΡ‚ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ массив, состоящий ΠΈΠ· Ρ†Π΅Π»Ρ‹Ρ… чисСл:
int a;

Однако этот ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ лишь ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π°, Π½Π΅ инициализируя Π΅Π΅ настоящим массивом. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив, Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ new.

Π­Ρ‚ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ создаСт массив, состоящий ΠΈΠ· 100 Ρ†Π΅Π»Ρ‹Ρ… чисСл. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ этого массива Π½ΡƒΠΌΠ΅Ρ€ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚ 0 Π΄ΠΎ 99 (Π° Π½Π΅ ΠΎΡ‚ 1 Π΄ΠΎ 100). ПослС создания массив ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π°.

int Π° = new int;
for (int i = 0; i < 100; i++)
a[i] = i; // ЗаполняСт массив числами ΠΎΡ‚ 0 Π΄ΠΎ 99.

Если Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ элСмСнту Π° (ΠΈΠ»ΠΈ Π»ΡŽΠ±ΠΎΠΌΡƒ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ элСмСнту, индСкс ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΎΡ‚ 0 Π΄ΠΎ 99), создав массив, состоящий ΠΈΠ· 100 элСмСнтов, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ситуация, связанная с Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ индСкса массива Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ допустимого Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.
Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ количСство элСмСнтов Π² массивС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ имяМасси-
Π²Π°.length.

НапримСр,

for (int i = 0; i < a. length; i++ System.out.println (a[i]);

ПослС создания массива ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ (хотя ΠΌΠΎΠΆΠ½ΠΎ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΅Π³ΠΎ элСмСнты). Если Π² Ρ…ΠΎΠ΄Π΅ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ часто ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ структуру Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ списком массивов (array list).

Массив ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ двумя способами:

int a;
ΠΈΠ»ΠΈ
int a;

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ программистов Π½Π° языкС Java ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² Π½Π΅ΠΌ Ρ‡Π΅Ρ‚Ρ‡Π΅ отдСляСтся Ρ‚ΠΈΠΏ массива int (цСлочислСнный массив) ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ массивов ΠΈ бСзымянныС массивы

Π’ языкС Java Π΅ΡΡ‚ΡŒ срСдство для ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ создания массива ΠΈ Π΅Π³ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠΎΠΉ синтаксичСской конструкции:

int smallPrimes = { 2, 3, 5, 7, 11, 13};

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² этом случаС Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ new. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ бСзымянный массив:

new int { 16, 19, 23 , 29 , 31, 37}

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

smallPrimes = new int{ 17, 19, 23, 29, 31, 37 };
прСдставляСт собой ΡƒΠΊΠΎΡ€ΠΎΡ‡Π΅Π½Π½ΡƒΡŽ запись выраТСния
int anonymous = { 17, 19, 23, 29, 31, 37 };
smailPrimes = anonymous;

МоТно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. Π’Π°ΠΊΠΎΠΉ массив ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ ΠΏΡ€ΠΈ написании ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‰Π΅Π³ΠΎ Π½Π΅ΠΊΠΈΠΉ массив, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ оказываСтся пустым. Массив Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

new Ρ‚ΠΈΠΏΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ²

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ массив Π½Π΅ эквивалСнтСн ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ null.

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

Один массив ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Π½ΠΎ ΠΏΡ€ΠΈ этом ΠΎΠ±Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ массив.

int luckyNumbers = smailPrimes;
luckyNuimbers = 12; // Π’Π΅ΠΏΠ΅Ρ€ΡŒ элСмСнт smailPrimesΡ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π²Π΅Π½ 12.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° рис. 3.14. Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС элСмСнты ΠΎΠ΄Π½ΠΎΠ³ΠΎ массива Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ, слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ arraycopy ΠΈΠ· класса System. Π•Π³ΠΎ Π²Ρ‹Π·ΠΎΠ² выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

System.arraycopy(from, fromlndex, to, tolndex, count);

Массив to Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ достаточный Ρ€Π°Π·ΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² Π½Π΅ΠΌ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΠ»ΠΈΡΡŒ всС ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ элСмСнты.

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

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

int smailPrimes = {2, 3, 5, 7, 11, 13};
int luckyNumbers = {1001, 1002, 1003, 1004, 1005, 1006, 1007};
System.аггаусору(smailPrimes, 2, luckyNumbers, 3, 4);
for (int i = 0; i < luckyNumbers.length; i++)
System.println(i +.": " + luckyNumbersfi]);

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этих ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ.

0: 1001
1: 1002
2: 1003
3: 5
4: 7
5: 11
6: 13

Рис. 3.15. ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ элСмСнтов массива

Массив Π² языкС Java Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ отличаСтся ΠΎΡ‚ массива Π² языкС C++. Однако ΠΎΠ½ практичСски совпадаСт с ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π° динамичСский массив. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€

int a = new int; //Java
эквивалСнтСн ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ
i n t * = new i n t [ 1 0 0 ] ; // C++,
Π° Π½Π΅
int a; // C++

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

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

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

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

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

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

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

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

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

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

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

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

intarr = newint;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Массив Π² Java - это Π½Π°Π±ΠΎΡ€ элСмСнтов ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ индСксу.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ массивов Π² Java располоТСны Π΄Ρ€ΡƒΠ³ Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ Π² памяти ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. НиТС разбираСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€ массива Π² Java.

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

Объявим массив, для хранСния элСмСнтов Ρ‚ΠΈΠΏΠ° int:

Π—Π΄Π΅ΡΡŒ объявлСна пСрСмСнная arr, которая являСтся массивом. Π§Ρ‚ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π½ΡƒΠΆΠ½ΠΎ Π΅Ρ‘ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ.

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

Для опрСдСлСния массива Π² Java слСдуСт ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π΄Π»ΠΈΠ½Ρƒ, Ρ‚.Π΅. количСство элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π² Π½Ρ‘ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ:

Π’ нашСм массивС Π±Π΅Π΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ 5 элСмСнтов.

Массив - это Π½Π°Π±ΠΎΡ€ элСмСнтов. К ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту массива ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΏΠΎ Π΅Π³ΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ. НомСр принято Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ индСксом. НумСрация элСмСнтов массива Π² Java ΠΈΠ΄Ρ‘Ρ‚ с нуля.

Как Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ элСмСнты Π² массив?

ΠŸΡ€ΠΈΡΠ²ΠΎΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ элСмСнту массива, Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт ΠΈΠΌΠ΅Π΅Ρ‚ индСкс ноль:

ΠŸΡ€ΠΈΡΠ²ΠΎΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ элСмСнту массива, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт ΠΈΠΌΠ΅Π΅Ρ‚ индСкс ΠΎΠ΄ΠΈΠ½:

for(int inn = 0; inn < 5; inn++)
{
arr = inn;
}

МоТно ΠΏΡ€ΠΈ объявлСнии массива сразу Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π² Π½Π΅Π³ΠΎ значСния:

int arr = {0, 1, 2, 3, 4};

количСство элСмСнтов здСсь Ρ€Π°Π²Π½ΠΎ 5-Ρ‚ΠΈ, Ρ‚.Π΅. Π½Π΅Ρ‚ нСобходимости ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ число элСмСнтов, ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ автоматичСски.

Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ элСмСнты ΠΈΠ· массива?

К ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту массива ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΏΠΎ Π΅Π³ΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ. Π§Ρ‚ΠΎΠ± ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ элСмСнт массива, Π½Π°Π΄ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя массива ΠΈ индСкс элСмСнта:

это ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт массива, вСдь Ρƒ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСта индСкс ноль.

ΠŸΡ€ΠΈΡΠ²ΠΎΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ элСмСнта массива ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ int a:

Π’Ρ‹Π²Π΅Π΄Π΅ΠΌ Π² Ρ†ΠΈΠΊΠ»Π΅ всС элСмСнты массива (ΠΏΠ΅Ρ€Π΅Π±Π΅Ρ€Π΅ΠΌ массив):

For(int inn = 0; inn < 5; inn++) { System.out.println("arr[" + inn + "] = " + arr); }

Π£ΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π° для Π²Ρ‹Π²ΠΎΠ΄Π° массива Ρ‚Π°ΠΊΠΎΠ²:

For(int inn: arr) { System.out.println("arr[" + inn + "] = " + arr); }

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ массив Π² Java?

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ массив Π² Java ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊ:

Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ массива Π² Java?

Π”Π»ΠΈΠ½Ρƒ массива Π² Java ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‚Π°ΠΊ:

int arrLength = arr.length;

Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт массива Π² Java?

int firstElem = arr;

Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ полслСдний элСмСнт массива Π² Java?

int lastElem = arr;

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

Как Π² Java Π·Π°Π΄Π°Ρ‚ΡŒ массив ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹? Никак. Когда Π²Ρ‹ опрСдСляСтС массив, Ρ‚ΠΎΠ³Π΄Π° ΠΈ Π·Π°Π΄Π°Ρ‘Ρ‚Π΅ Π΅Π³ΠΎ Π΄Π»ΠΈΠ½Ρƒ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Ρ‘ Π² дальнСйшСм нСльзя. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: Vector, ArrayList ΠΈ Π΄Ρ€.

Π˜Ρ‚Π°ΠΊ, ΠΏΠ΅Ρ€Π΅ΠΌΠ½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Π° массива Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚. Но ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ массива. Если Ρ‚Π°ΠΊ:

int cd;
int ab = new int;//Error.

Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Π΄Π»ΠΈΠ½Π° массива Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Надо Π·Π°Π΄Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ cd:

int cd = 10;
int ab = new int;

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ. Если послС опрСдСлСния массива ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ cd, Ρ‚ΠΎ это Π½Π΅ повлияСт Π½Π° массив, Ρ‚.Π΅. Π΅Π³ΠΎ Π΄Π»ΠΈΠ½Π° Π½Π΅ измСнится. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Int cd = 10; int ab = new int; cd = 12;// Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ arrLength = ab.length; System.out.println("ab array length = " + arrLength); //Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚: ab array length = 10 ab=4;// А Π²ΠΎΡ‚ здСсь ошибка

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΎΡˆΠΈΠ±ΠΊΡƒ:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11

ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ индСкс нашСго массива Ρ€Π°Π²Π΅Π½ 9-Ρ‚ΠΈ. ИзмСнСниС значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ cd Π½Π΅ влияСт Π½Π° массив, вСдь ΠΎΠ½ ΡƒΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΈ Π΅Π³ΠΎ Π΄Π»ΠΈΠ½Π° Π΅ΡΡ‚ΡŒ константа.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для обращСния ΠΊ элСмСнтам массива:

Int var = 1;
int elem = arr;
var = 2;
elem = arr;

Массив символов в Java

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ массива символов Π² Java ΠΈ Π΅Π³ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π°:

Char charArr = {"S", "B", "P"}; for(int inn = 0; inn < charArr.length; inn++) { System.out.println("charArr[" + inn + "] = " + charArr); }

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

Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ массив ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ статичСского ΠΌΠ΅Ρ‚ΠΎΠ΄Π° fill.