Java для начинающих. Урок 13: Многомерные массивы.
Вставка
- Опубліковано 15 вер 2024
- МОЙ НОВЫЙ КУРС: • Мой курс "Продвинутая ...
ПРАКТИКА НА JAVA: java-marathon....
На этом уроке Java для начинающих мы узнаем про многомерные массивы.
Реклама и сотрудничество: alishev.neil@gmail.com
Регистрируйтесь на курс "Продвинутая Java": ua-cam.com/video/rRe1vT0SDD8/v-deo.html
Практикуйтесь в написании Java кода: java-marathon.tilda.ws
Sorry to be off topic but does someone know of a trick to get back into an Instagram account?
I somehow forgot my login password. I appreciate any tricks you can offer me.
*в очередной раз заходит на видео alishev*
-После стольких лет...?
-Всегда.
Когда учился в школе от слова "массив" у меня начинала болеть голова. После школы выбрал медицину, хоть и любил IT. Как же я злился на себя что не понимал. Теперь понимаю что не каждый учитель может научить. Спасибо мужик! Настолько понятно! У меня даже легкая эйфория от того что я начал понимать!
Спасибо тебе огромное!
понимаю братик, сам пошел в медицину хотя не особо тянуло в итоге это привело к отчислению через полтора года. щас намерен активно учить java, спасибо автору за столь прекрасный материал, просто и понятно на пальцах объясняет
@@brouk27272ну что, как успехи?
Первый урок, где я напрягся от кода, от этого двойного цикла. И уже подумав, что всё, приплыли, вот почему я никогда не мог выучить язык, опять в тупике. И как гром среди ясного неба опять твои простейшие и гениальнейшие объяснения) Сколько усердия вложено в эти уроки, сколько понимания к новичкам. Благодарю от всего сердца! Храни тебя Господь!
не плохо бы тебе написать Кингу по изучению Java, у тебя хорошо и доходчиво получается доносить информацию в котором тяжело разобраться самостоятельно.
Спасибо автору за очень интересные и в то же время понятные уроки :)
И если кому интересно, итерация массива с помощью foreach выглядит так
int[][] matrix = {
{1,2,3},
{4,5,6},
{7,8,9}};
for(int[] i: matrix) {
for(int k: i) {
System.out.print(k + " ");
}
System.out.println();
}
Спасибо! Как раз не понимал, почему у меня не получается использовать foreach
Не могу понять почему в первом цыкле мы указываем (int[]) , а во втором просто int без указания масива?
@@gfbre2937 потому что i это не массив это типо номер
@@gfbre2937 потому что в i загружаются по очереди все строки исходного массива. Т.е. буквально звучит так: "загружать по очереди все линейные массивы исходного двумерного массива". Только "строки" исходного массива, которые сами по себе тоже являются массивами, но уже одномерными. А второй цикл перебирает все значения временного линейного массива. Очень изящное решение, кстати :)
мужик ты просто космос. Всякие джавараши рядом не стояли с их некачественным материалом. То, что я там проходил 2 недели у тебя узнал за час + здесь мне все понятно.
Небольшая просьба, если ты практикующий программист, было бы неплохо приводить примеры, где и как часто те или иные конструкции обычно используются при разработке в боевых условиях, чтобы было понимание как оно все устроено на практике. Жаль, что не нашел Твой канал раньше, столько времени потратил зря.
Я рад, что вам нравится.
полезно и там, и тут. Там практики много. Здесь наглядно.
В джавараш куча задач, тем и выделяются, а вот подача материала у них действительно хромает.
@@maksinspire Да верно. Некоторые пытаются максимум дать по одной теме, а это не всем подходит. Здесь дается основной минимум, а уж глубже копать можно после этих лекций. Как бы слой за слоем обучение и эти видосы самый первый и основной слой знаний.
@@Mannelig92 я тоже из джавараша пришел )))
С последнего объяснения, окончательно вник, как все работает, спасибо.
Оставляю комментарий чтобы выразить благодарность автору за его труд! Очень качественные уроки! Спасибо!
только с помощью твоего видео смог разобраться с многомерными массивами. Спасибо!
Пожалуйста!
Это невероятно , я первые дни изучаю Java , и начала с ваших уроков , каждый день Америку открываете , это восторг . Каждый раз радуюсь новым знаниям , и что я вообще могу такое понимать 🤍 These lessons really help me 🙏 Thanks a million 🙏🙏🙏🙏
получилось чего?
отличная инфа, теперь я разобрался как таблицу умножения создать))
я даже незнаю как ты это делаешь, но за эти 15 минут я все наконец то понял!!! Смотрел других, читал несколько статей и в итоге в голове каша. А ты так все разжевал, что я в шоке как это легко! Спасибо тебе)
Продолжай, ты делаешь очень полезное и нужное дело.
+gCrimsun На этой неделе будет.
Большое спасибо! Ваши пояснения по Java - настоящее откровение. Учусь в Германии на информатике, тут ни одна книга и профессор не поясняли так материал понятно и квалифицированно как вы!
Пожалуйста, только не останавливайтесь! Вы превосходный учитель!
Спасибо!
Даже некоторые описки и неточности выглядят положительно и влияют на понимание темы. Выскочила ошибка, растолковал почему, как и зачем.. Респект!!!!
Спасибо огромное! Только сейчас разобрался с этими гребаными массивами. Никто так наглядно и четко еще не объяснял)
Прошло 3 года, ты уже вкатился?
Замечательно, идет как холодный квас в жаркий день. Был небольшой затык под конец видео но стоило пересмотреть пару раз тот кусок и обмозговать- все встало на свои места, и это учитывая что пересматривал уже в маке в вечернее время.
Мое уважение!
Очень круто объяснил, до этого почитал про массивы и ты ответил на образовавшиеся у меня вопросы!
Это первые курсы по программированию, которые я смотрю, до этого всё, что связано с программированием для меня было чем-то инопланетным, то есть ни разу не сталкивался ни с теорией, ни с практикой (разве что Turbo Basic более 20ти лет назад в школе, в понимании которого отстал на старте). В жизни было куча всего, последние годы было особенно жесткое непонимание, что и почему я делаю, в итоге насмотревшись на образ жизни одного нового друга-программиста, решил попробовать свичнуться (ибо как бы это ни казалось дико непонятно на первый взгляд, но полюбому в этом нет ничего такого, чему нельзя научиться). В итоге насмотрелся вводных от Немчинского, на тему какой язык выбрать, начал пробовать с джава, друг посоветовал этот курс, и так скажу - с абсолютного нуля заходит не прямо как по маслу, но и без серьёзных затыков, всё понимаю сразу или чуть позже, а иногда и предвосхищаю, то есть по первым словам понимаю,что будет делаться дальше, ставлю на паузу, пишу код, проверяю работоспособность, потом снова вкл видео, чтобы свериться, так ли я написал, верно ли понял логику и синтаксис языка. Отмечу всё же некоторые запинки автора, которые чуть ломают целостность повествования и внесения в мозг понимания, однако уже привык следовать за авторской мыслью, запинки вносят диссонанс всё меньше. Напомню, это первый курс по программированию, который я в своей жизни смотрю, на сколько доступно преподносится инфа в других курсах - судить не могу, просто отмечаю свои наблюдения с нуля. Автору - огромное спасибо за труд, и всего наилучшего на пути саморазвития))
Боже, спасибо, что всё это делаете и так хорошо объясняете. Наконец-то я это всё начинаю понимать. Ходил на курсы по Яве, так там препод только включал какие-то видео с ютуба от людей, которые мало того, что объяснять не умеют, так ещё и половина не понимают, что они делают.
Ты настоящий учитель, не всем это дано друг мой, это Божий дар.
Наконец-то понял как массив матрицей вывести, спасибо)
Как грамотно все изложено. Понимание конечно пришло после практики с массивами одномерными. Огромное спасибо !
СПАСИБО БОЛЬШОЕ !!!! Дай бог вам здоровья!
Для тех кто все равно не понял про последнее:
Для начала for(int i=0;i
Здоровья и благополучия Вам! Учитель от Бога
Это пока лучшее объяснение по многомерным массивам. Все просто и понятно). Благодарю
Лучшее объяснение про массивы из всех видео которые видел.
Большое спасибо за обучение.
лучшее объяснение как инициализируется двумерный массив. Спасибо.
Привет, на 10:21 оговорился "Внешний цикл будет проходиться по строкам, а ВНЕШНИЙ по столбцам" - внутренний по столбцам.
Спасибо за уроки, коротко и доступно
Для тех, кто ничего не понял. Сначала нужно было бы объяснить что такое индекс i\j.
Индекс i -строка
индекс j- столбец.
как устроена матрица.
Ибо людям, кто не проходил высшую математику или кто ее не понимает, как я. Будет писец как сложно.
Он об этом 2 раза сказал
По моему самое лучшее объяснение двумерного массива.
Очень хорошие уроки. Надеюсь не забросите канал.
Автор, отличный канал. Вам бы в конце видео давать задание зрителям на закрепление материала. А в следующем видео показывать как надо было написать задание из предыдущего видео. Или сделать отдельную подборку видео которые следует смотреть параллельно с этими уроками, где давать задание - а потом разбирать как нужно было его выполнить.
Я это сейчас как раз записываю)
Чувак ты Лучший кто очень ясно изъясняет такую довольно сложную тему .. Но есть маленький недочет , когда ты говоришь про первый элемент в строке ты имеешь ввиду нулевой для программы , и это режет слух так как пытаешься просчитать к чему обращается цикл к первому элементы или нулевому по сути первому .... Может сразу говорить что это нулевой элемент так будет ясней ...
Огромное вам спасибо! Очень понятно и по пунктам все объясняете и разбираете. Благодаря вам в голове все встает на свои места. Желаю вам всего наилучшего!
спасибо!
ты кросаучег! как все понятно!! прям как моя преподша объясняла - все четенько, слово в слово. Супер
Супер понятное объяснение, спасибо!
Огромное спасибо! Очень и очень хорошо объясняете-понятно, доступно и интересно.
спасиб, были сложности но практикой после урока сразу понятно становится
Браво маэстро!
Автору, огромная благодарность, низкий поклон, за труды!
Добавлю от себя(сам так же учусь только), может станет кому интересно, for each для двумерного массива или более, прошлым уроком проходили. Двумерный массив - это множество одномерный массивов. Трехмерный множество двумерных и т.д..
Пример вывода на экран двумерного массива:
public static void main(String[] args) {
int [][] a = {{1,2,3},{4,5,6}};
for(int[] b: a){//Одномерные массивы b двумерного массива a
for(int c: b){//Элемент с одномерного массива b
System.out.println(c);
}
Ну вышло что вышло, не судите, сам полный нольце :D
System.out.println("Через цикл for each");
for (int[] a:mass1){
for (int b:a){
System.out.print(b+" ");
}
System.out.println();
}
Отличное видео, после него подписался информативно просто и понятно.
Уроки СУПЕР!!! Спасибо большое!
Спасибо, ты лучший, так держать, все очень грамотно объясняешь, смотрю с большим удовольствием!!!
Тут больше человек пытается объяснить своими словами. Замена академической терминологии часто режет слух, но на изложение материала это не влияет и главное большинству понятно.
Спасибо за уроки, все очень хорошо объясняешь! Конечно, к некоторым темам хотелось бы, чтобы разбирались небольшие практические задачки.. но это было бы, наверное, через чур ресурсозатратно.
Спасибо, видео помогло понять массивы
Можете ещё посмотреть уроки Java на моем канале для начинающих.
Отличный преподаватель, всё разжевал. Я впервые такое встречаю, понятнее чем в книгах. Заранее купил курс на udemy так как лучше препода не встречал в ютубчике
Очень доступно объясняешь!
Спасибо вам огромное. Понял все с первого раза на отлично.
Если представить многомерный массив, как несколько одномерных, а не строки и столбцы, то будет еще более понятно и наглядно.
И если в случае одинарного массива его msv.length это количество индексов внутри массива, то в случае многомерного массива его длина mmmsv.length это количество отдельных массивов внутри многомерного.
msv[0] | [index0] [index1] [index2] |
msv[1] | [index0] [index1] [index2] | -- многомерный массив mmmsv
msv[2] | [index0] [index1] [index2] |
Тогда и foreach будет выглядеть элементарным:
for(int[] msv:mmmsv) { // для каждого отдельно взятого массива msv из целой кучи mmmsv
for(int index:msv) { // для каждого индекса отдельно взятого массива msv
System.out.print(index); // выводится конкретный индекс конкретного массива msv
}
System.out.println();
}
Бро прошу тебя, я заплачу. Сделай практичеческие задания, в промежутках между уроками, на своё усмотрение. Задания по методам, циклам, массивам. Что нибудь с Арифметическими операциями.
В колледже еще давно показывали программирование по типу, дети это программирование, программирование это дети, но что то да отложилось 🤣
Блин если бы так в колледже объясняли программирование, но увы.
Подача хорошая уроки не большие не успеешь утомится, и потом в случае чего пересмотрел быстро и закрепил.
Спасибо большое за труды.
Спасибо! Супер! Особенно понравился пример, класс!
емае, я это не мог понять уже неделю, спасибо!!!
Спасибо Вам за отличное объяснение тем. Все по высшему разряду. Только вот одна просьба, сделайте, пожалуйста урок на тему ArrayList. Я эту тему вообще не понимаю. Удачи Вам.
Совсем скоро выйдет большой курс "Продвинутая Java", где будут затронуты такие темы как Java Коллекции, Многопоточность и многое другое. Про ArrayList тоже будет очень подробно :)
Следите за обновлениями на канале. Спасибо!
хорошо б в конце видео или в описании задачки к уроку )
класс так все доходчиво и простым языком)
искал инфу как инициализировать многомерный массив, ток у тебя нашел
спасибо
kostin.ws/java/java-arrays.html
Спасибо! Просто Спасибо.
Спасибо за ваше видео! Все очень доступно и бережно) Рада, что нашла ваш канал!)
У меня также вопрос к вам, как к практику.
В разных ресурсах встречаю разную навигацию по двумерному массиву:
1. сначала высота (строки), потом вторые квадратные скобки - ширина (столбцы), как в видео
2. [сначала столбцы], [потом строки]
Как чаще на практике? Есть ли где место, проекты, где применяют одну или другую разметку?
Заранее спасибо за ответ!
В многомерном массиве нет строк и столбцов, как я понял. Есть элементы массива (то, что вы назвали строками), которые сами являются массивами. И в этих элементах-массивах есть свои элементы (то, что вы назвали столбцами).
можно было бы еще показать как заполнить массив в цикле. Рандомными цислами, по порядку, по порядку в сороке
Придумал решение, решил
public static void main(String[] args) {
int [][] matrice = new int[3][3];
for (int i = 0; i < matrice.length; i++){
for (int j = 0; j < matrice[i].length; j++){
matrice[i][j] = (int)(Math.random() * 20);
}
}
}
Спасибо!
Спасибо за урок!
Прекрасные уроки, очень увлекательно. Точно не остановлюсь, а продолжу в продвинутой Java. Где бы еще попрактиковаться?
В интернете можно найти задачки для программистов. Хороший сайт например Hackerrank.
Наиль, Вы суперски объясняете сложные вещи простым языком. Может правда книгу напишете?
мне больше нравится записывать курсы в видеоформате)
После Geek Breins, где ничего не понятно, только - "Э..", "ну...", "ну вы поняли..." в течении 2 часов, здесь понимаешь сразу за 10 минут!
Респект, что тут сказать
Спасибо
Ну просто лучший :)
спасибо!
Получается это не многомерный массив, а массив массивов, ибо в истинных многомерных массивах не может быть пустых элементов - во всех ячейках X*X должно хоть что-то содержаться
Супер!
полезный курс респектосы
Для чего используется length в данном уроке? Для чего он приписывается к названию массива?
Здравствуйте. Благодарю за ваш курс.
Единственный вопрос, для чего вот это выражение?
for (int j = 0; j < matrix[i].length; j++) {
когда работает и без
for (int j = 0; j < matrix.length; j++) {
для объяснения в конце лучше бы подошёл дебагер в идее он очень наглядный. За уроки низкий поклон.
Это законно такие не очень понятные темы так легко объяснять?
Очень классный материал... я одного не могу понять... почему при слове строка каждый раз ведет мышкой по вертикали и при слове столбец по горизонтали =\
Спасибо за Ваши труды. Вопросик - а не проще было бы c помощью foreach решить вашу задачу с матрицами?
for(int[] items:matrix) {
for(int item:items) {
System.out.print(item);
}
System.out.println();
}
Вот этот способ значительно удобнее
@@АртурКамалдинов-я4ш удобнее, но если вы захотите перебрать не готовый массив, а например свой, который вы будете подавать на вход класса Scanner, тогда этот цикл не подходит.
в 13-м уроке для меня:
Одномерный массив - табличка, состоящая из одной строки.
Двумерный массив - табличка, в которой две или более строк.
4:25 декларирование и инициализация двумерного массива
Создать двухмерный массив простых чисел через { { }, {}}. Вывести на экран значение каких-либо двух ячеек по своему усмотрению
Создать массив стринговый. Дать одной из ячеек значение “привет”
Создать квадратный массив через фигурные скобки. Вывести его на экран, используя вложенные циклы for. Сделать так чтобы каждая новая строчка выводилась с новой строки
11:30 - сложный для понимания момент
@@АбуЗаррФарадей это помогает собрать/подитожить в голове что извлекла из урока
@@АбуЗаррФарадей бросила на ютюбе учить. Пересела на Шилдта. У тебя Java на каком уровне?
Спасибо за уроки, очень доходчиво. Не проще было перебрать двумя foreach? for(int[] a:b){for( int c:a){}}
Можно и так
С двумя foreach не сможешь данные с клавиатуры вносить, а так можно и им перебрать.
Спасибо!!
10:20 посмеялся смешно конечно
Я все таки не понял почему j
А как сделать чтобы программа нашла число 9 и указало строку и столбец?
Лайк от явиста - СЕООНЛИ
Через foreach
for(int[] element:your_array){
for(int element_2:element){
System.out.print(element_2 + " ");
}
System.out.println();
}
Так скажем, элементарный элемент двумерки - одномерка, состоящая из int примитивов. А вот у одномерки элементарный элемент - сами примитивы
спасибоооо если честно я этот урок сразуу никак не понял но во второй раз Я ПОНЯЛ ЧТО ЭТО МОЯ ВИНА СПАСИБОООО
Здравствуйте, лучший канал который я видел, спасибо большое! Но есть один вопрос: у меня задание вывести таблицу умножения 10х10, это лучше сделать так как Вы показали в конце видео, то бишь через вывод двухмерного массива? Или есть способ покороче?
+Виталий Нехведович для этого задания не обязательно создавать массивы.
+javaRussia но ведь вручную вводить 100 цифр это долго.
нет, два цикла необходимы, но массив не обязателен.
public class MultiplicationTable {
public static void main(String[] args) {
int x;
for(int i = 1; i
Можно ли обработать многомерный массив с помощью for each?
спасибо, после лекции на джавараш пришел сюда
спасибо.
Скажите, а вот такой вариант, когда массив состоит из объектов класса. Эта тема где-то будет обсуждаться в последующих уроках или тут окончательно о массивах? В смысле есть ли какие-то нюансы, которые необходимо знать когда массив из объектов или всё то же самое?
Можно чтобы вывести массив не использовать циклы, а метод Arrays.toString
Спасибо за работу. Вы еще продолжаете делать ролики?
Пожалуйста!
Да, продолжаю.
Под одним видео (или где-то под этим) нашел вопрос от подписчика про 3х мерный массив. Попробовал разобраться - вроде получилось. Очень интересно было. Думаете ли вы над тем, чтобы в конце ролика (или в описании) давать задания, чтобы решения выкладывали в комментариях подписчики и обсуждали их?
почему когда ты говоришь про строки ты водишь вертикально мышкой, а когда говоришь про столбцы то горизонтально?
строки расположены одна под другой (сверху вниз). А столбцы расположены горизонтально - слева направо.
Еще можно форичем перебрать, будет короче.
Добрый день. У меня вопрос: проделал все так же как в видео но у меня в конце получается, что цифры не как в видео, а по три цифры в столбец...в чем может быть причина? пользуюсь eclipse.
Если нужно вот код:
public class Miltidimensional_arrays {
public static void main (String args[]){
int [][] matrix ={{1,2,3},
{4,5,6},
{7,8,9}};
for(int i = 0;i
+Vadim Skorohod System.out.println(matrix[i][j]+"");
Здесь вызывайте метод не println, а print, чтобы он не перемещался на следующую строку
+javaRussia спасибо, уроки оч хорошие, все четко по делу, а то как начинал другие смотреть толком никто ничего не объясняет и много слов не нужных.
Пожалуйста:)
@@alishevN Помоги разобраться, почему мы инкрементируем j пока она не достигнет трёх, но i мы оставляем, пока не закончится вложенный цикл, только после этого инкрементируем i, почему так, оно же по идее тоже должно всегда инкрементироваться?
@@cryptoendeavour потому, что мы сначала проходим по ВСЕМ элементам строки (инкрементируя j), а только потом переходим на следующую строку (инкрементируя i). То есть следующий вложенный цикл уже действует для следующей строки. А если бы мы инкрементировали i вместе с j, у нас бы получилось, наверное, только 1 5 9