+ 1

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

Я не понимаю новую тему в Java, а именно массивы, можете пожалуйста объяснить как она работает, вообще не понимаю

23rd Aug 2022, 2:56 PM
Akridem
Akridem - avatar
45 Answers
0
myArr[0][2] = 42; Это означает, что мы вместо числа 3, которое находится в нулевой ячейке, позиция 2 вставляем туда число 42 и у нас получается вот так: [ [1,2,42], ---->0 4, ----->1 [5,6,7] ----->2 ]
23rd Aug 2022, 3:59 PM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 2
Привет! Что именно не понятно? Что такое массив?
23rd Aug 2022, 3:17 PM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 1
Твердые скобки как раз и говорят компьютеру, что эта именно переменная и есть массив. Только массив пустой
23rd Aug 2022, 3:26 PM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 1
В языках программирования есть такое понятие, как переменная и тип данных. Переменная если визуально представить в программе это как пустая коробка. Внутрь коробки можно положить данные. Данные бывают: - int: для целых чисел, таких как 123 и -456 - double: для чисел с плавающей точкой или действительных чисел с опциональной десятичной точкой и дробной частью в фиксированной или научной нотации, такой как 3.1416, -55.66. - String: для текста, типа "Hello" или "Good Morning!". Текстовые строки заключаются внутри двойных кавычек. т. е., чтоб в программе использовать данные, нужно создать переменную и явно указать, какой тип данных будет в ней лежать (int, string, double...)
23rd Aug 2022, 3:32 PM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 1
Так вот, массив это тоже тип данных, как и int, string, double Примеры: int a; double b; string c; В этих трех строках мы создали три разных переменных a, b, c объявили(сказали) программе, что там будут лежать данные именно: для а -это целые числа, для b это с плавающей точкой и c там будет лежать строка. Но пока переменные пустые! В них ничего нет, в коробку ничего не положено. Так же само и с массивом. Мы создаем переменную, даем ей имя и указываем, что это массив. Но массив пока пустой
23rd Aug 2022, 3:37 PM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 1
За этоmyArr = [0] [2]=42 я сейчас изучу что и как, а вот как получилось x = 4 я знаю
23rd Aug 2022, 3:45 PM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 1
Двумерный массив это массив в массиве. Он выглядит так: [ [1,2,3], ---->0 4, ----->1 [5,6,7] ----->2 ] Т.е. у нас есть массив из трех значений: на нулевой позиции у нас массив 1,2,3 на первой позиции 4 и на второй позиции 5,6,7
23rd Aug 2022, 3:49 PM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 1
x = myArr[1] [0] означает, что мы х присваиваем значение из массива myArr первая позиция, нулевое значение. Это как раз 4
23rd Aug 2022, 3:53 PM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 1
Попробуй там в уроке в том примере кода зайди в исполнение кода и поменяй значения x в квадратных скобках с [1] [0] на [0] [2]
23rd Aug 2022, 4:02 PM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 1
Числа в квадратных скобках означают позицию элемента в массиве
23rd Aug 2022, 4:05 PM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 1
Мы заменили число 3, которое было изначально на позиции 0 2 на 42
23rd Aug 2022, 4:08 PM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 1
Было: [ [1,2,3], ---->0 4, ----->1 [5,6,7] ----->2 ] Стало: [ [1,2,42], ---->0 4, ----->1 [5,6,7] ----->2 ]
23rd Aug 2022, 4:10 PM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 1
Попробуй, поиграй с кодом, вставляя туда разные значения: 0 0 2 2 1 0 И смотри на массив чисел, который выше: int [] [] myArr = { {1,2,3} , {4}, {5,6,7} };
23rd Aug 2022, 4:13 PM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 1
Оператор = в программировании означает команду "присвоить". Мы присвоили значению в массиве по адресу 0 2 значение 42. Мы просто стерли тройку и вместо нее там появилось 42
23rd Aug 2022, 4:16 PM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 1
После выполнения всего кода из примера массив стал выглядеть так: int [] [] myArr = { {1,2,42} , {4}, {5,6,7} };
23rd Aug 2022, 4:17 PM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 1
Можно конечно любое. Это просто тебе дано для примера. Запиши туда хоть сто тысяч
23rd Aug 2022, 4:18 PM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 1
Тебе просто показывают операции с массивом
23rd Aug 2022, 4:19 PM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 1
public class Program { public static void main(String[] args) { int[ ][ ] myArr = { {1, 2, 3}, {4}, {5, 6, 7} }; myArr[0][2] = 500; int x = myArr[0][2]; System.out.println(x); } }
23rd Aug 2022, 4:20 PM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 1
Ааааа, все теперь я точно понял
23rd Aug 2022, 4:22 PM
Akridem
Akridem - avatar
+ 1
Огромное спасибо
23rd Aug 2022, 4:22 PM
Akridem
Akridem - avatar