МОЙ НОВЫЙ КУРС: • Мой курс "Продвинутая ... ПРАКТИКА НА JAVA: java-marathon.... На этом уроке Java для начинающих мы узнаем про многомерные массивы. Реклама и сотрудничество: alishev.neil@gmail.com
Регистрируйтесь на курс "Продвинутая Java": ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-rRe1vT0SDD8.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.
не плохо бы тебе написать Кингу по изучению 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(); }
@@gfbre2937 потому что в i загружаются по очереди все строки исходного массива. Т.е. буквально звучит так: "загружать по очереди все линейные массивы исходного двумерного массива". Только "строки" исходного массива, которые сами по себе тоже являются массивами, но уже одномерными. А второй цикл перебирает все значения временного линейного массива. Очень изящное решение, кстати :)
Когда учился в школе от слова "массив" у меня начинала болеть голова. После школы выбрал медицину, хоть и любил IT. Как же я злился на себя что не понимал. Теперь понимаю что не каждый учитель может научить. Спасибо мужик! Настолько понятно! У меня даже легкая эйфория от того что я начал понимать! Спасибо тебе огромное!
понимаю братик, сам пошел в медицину хотя не особо тянуло в итоге это привело к отчислению через полтора года. щас намерен активно учить java, спасибо автору за столь прекрасный материал, просто и понятно на пальцах объясняет
мужик ты просто космос. Всякие джавараши рядом не стояли с их некачественным материалом. То, что я там проходил 2 недели у тебя узнал за час + здесь мне все понятно. Небольшая просьба, если ты практикующий программист, было бы неплохо приводить примеры, где и как часто те или иные конструкции обычно используются при разработке в боевых условиях, чтобы было понимание как оно все устроено на практике. Жаль, что не нашел Твой канал раньше, столько времени потратил зря.
@@maksinspire Да верно. Некоторые пытаются максимум дать по одной теме, а это не всем подходит. Здесь дается основной минимум, а уж глубже копать можно после этих лекций. Как бы слой за слоем обучение и эти видосы самый первый и основной слой знаний.
Это невероятно , я первые дни изучаю Java , и начала с ваших уроков , каждый день Америку открываете , это восторг . Каждый раз радуюсь новым знаниям , и что я вообще могу такое понимать 🤍 These lessons really help me 🙏 Thanks a million 🙏🙏🙏🙏
я даже незнаю как ты это делаешь, но за эти 15 минут я все наконец то понял!!! Смотрел других, читал несколько статей и в итоге в голове каша. А ты так все разжевал, что я в шоке как это легко! Спасибо тебе)
Большое спасибо! Ваши пояснения по Java - настоящее откровение. Учусь в Германии на информатике, тут ни одна книга и профессор не поясняли так материал понятно и квалифицированно как вы! Пожалуйста, только не останавливайтесь! Вы превосходный учитель!
Замечательно, идет как холодный квас в жаркий день. Был небольшой затык под конец видео но стоило пересмотреть пару раз тот кусок и обмозговать- все встало на свои места, и это учитывая что пересматривал уже в маке в вечернее время. Мое уважение!
Это первые курсы по программированию, которые я смотрю, до этого всё, что связано с программированием для меня было чем-то инопланетным, то есть ни разу не сталкивался ни с теорией, ни с практикой (разве что Turbo Basic более 20ти лет назад в школе, в понимании которого отстал на старте). В жизни было куча всего, последние годы было особенно жесткое непонимание, что и почему я делаю, в итоге насмотревшись на образ жизни одного нового друга-программиста, решил попробовать свичнуться (ибо как бы это ни казалось дико непонятно на первый взгляд, но полюбому в этом нет ничего такого, чему нельзя научиться). В итоге насмотрелся вводных от Немчинского, на тему какой язык выбрать, начал пробовать с джава, друг посоветовал этот курс, и так скажу - с абсолютного нуля заходит не прямо как по маслу, но и без серьёзных затыков, всё понимаю сразу или чуть позже, а иногда и предвосхищаю, то есть по первым словам понимаю,что будет делаться дальше, ставлю на паузу, пишу код, проверяю работоспособность, потом снова вкл видео, чтобы свериться, так ли я написал, верно ли понял логику и синтаксис языка. Отмечу всё же некоторые запинки автора, которые чуть ломают целостность повествования и внесения в мозг понимания, однако уже привык следовать за авторской мыслью, запинки вносят диссонанс всё меньше. Напомню, это первый курс по программированию, который я в своей жизни смотрю, на сколько доступно преподносится инфа в других курсах - судить не могу, просто отмечаю свои наблюдения с нуля. Автору - огромное спасибо за труд, и всего наилучшего на пути саморазвития))
Привет, на 10:21 оговорился "Внешний цикл будет проходиться по строкам, а ВНЕШНИЙ по столбцам" - внутренний по столбцам. Спасибо за уроки, коротко и доступно
Боже, спасибо, что всё это делаете и так хорошо объясняете. Наконец-то я это всё начинаю понимать. Ходил на курсы по Яве, так там препод только включал какие-то видео с ютуба от людей, которые мало того, что объяснять не умеют, так ещё и половина не понимают, что они делают.
Автор, отличный канал. Вам бы в конце видео давать задание зрителям на закрепление материала. А в следующем видео показывать как надо было написать задание из предыдущего видео. Или сделать отдельную подборку видео которые следует смотреть параллельно с этими уроками, где давать задание - а потом разбирать как нужно было его выполнить.
Огромное вам спасибо! Очень понятно и по пунктам все объясняете и разбираете. Благодаря вам в голове все встает на свои места. Желаю вам всего наилучшего!
Чувак ты Лучший кто очень ясно изъясняет такую довольно сложную тему .. Но есть маленький недочет , когда ты говоришь про первый элемент в строке ты имеешь ввиду нулевой для программы , и это режет слух так как пытаешься просчитать к чему обращается цикл к первому элементы или нулевому по сути первому .... Может сразу говорить что это нулевой элемент так будет ясней ...
Автору, огромная благодарность, низкий поклон, за труды! Добавлю от себя(сам так же учусь только), может станет кому интересно, 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
Для тех, кто ничего не понял. Сначала нужно было бы объяснить что такое индекс i\j. Индекс i -строка индекс j- столбец. как устроена матрица. Ибо людям, кто не проходил высшую математику или кто ее не понимает, как я. Будет писец как сложно.
Тут больше человек пытается объяснить своими словами. Замена академической терминологии часто режет слух, но на изложение материала это не влияет и главное большинству понятно.
Отличный преподаватель, всё разжевал. Я впервые такое встречаю, понятнее чем в книгах. Заранее купил курс на 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(); }
Спасибо за ваше видео! Все очень доступно и бережно) Рада, что нашла ваш канал!) У меня также вопрос к вам, как к практику. В разных ресурсах встречаю разную навигацию по двумерному массиву: 1. сначала высота (строки), потом вторые квадратные скобки - ширина (столбцы), как в видео 2. [сначала столбцы], [потом строки] Как чаще на практике? Есть ли где место, проекты, где применяют одну или другую разметку? Заранее спасибо за ответ!
В многомерном массиве нет строк и столбцов, как я понял. Есть элементы массива (то, что вы назвали строками), которые сами являются массивами. И в этих элементах-массивах есть свои элементы (то, что вы назвали столбцами).
Здравствуйте. Благодарю за ваш курс. Единственный вопрос, для чего вот это выражение? for (int j = 0; j < matrix[i].length; j++) { когда работает и без for (int j = 0; j < matrix.length; j++) {
Скажите, а вот такой вариант, когда массив состоит из объектов класса. Эта тема где-то будет обсуждаться в последующих уроках или тут окончательно о массивах? В смысле есть ли какие-то нюансы, которые необходимо знать когда массив из объектов или всё то же самое?
Спасибо Вам за отличное объяснение тем. Все по высшему разряду. Только вот одна просьба, сделайте, пожалуйста урок на тему ArrayList. Я эту тему вообще не понимаю. Удачи Вам.
Совсем скоро выйдет большой курс "Продвинутая Java", где будут затронуты такие темы как Java Коллекции, Многопоточность и многое другое. Про ArrayList тоже будет очень подробно :) Следите за обновлениями на канале. Спасибо!
Бро прошу тебя, я заплачу. Сделай практичеческие задания, в промежутках между уроками, на своё усмотрение. Задания по методам, циклам, массивам. Что нибудь с Арифметическими операциями.
Добрый день. У меня вопрос: проделал все так же как в видео но у меня в конце получается, что цифры не как в видео, а по три цифры в столбец...в чем может быть причина? пользуюсь 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
@@alishevN Помоги разобраться, почему мы инкрементируем j пока она не достигнет трёх, но i мы оставляем, пока не закончится вложенный цикл, только после этого инкрементируем i, почему так, оно же по идее тоже должно всегда инкрементироваться?
@@cryptoendeavour потому, что мы сначала проходим по ВСЕМ элементам строки (инкрементируя j), а только потом переходим на следующую строку (инкрементируя i). То есть следующий вложенный цикл уже действует для следующей строки. А если бы мы инкрементировали i вместе с j, у нас бы получилось, наверное, только 1 5 9
В колледже еще давно показывали программирование по типу, дети это программирование, программирование это дети, но что то да отложилось 🤣 Блин если бы так в колледже объясняли программирование, но увы. Подача хорошая уроки не большие не успеешь утомится, и потом в случае чего пересмотрел быстро и закрепил. Спасибо большое за труды.
Получается это не многомерный массив, а массив массивов, ибо в истинных многомерных массивах не может быть пустых элементов - во всех ячейках X*X должно хоть что-то содержаться
Очень классный материал... я одного не могу понять... почему при слове строка каждый раз ведет мышкой по вертикали и при слове столбец по горизонтали =\
Здравствуйте, лучший канал который я видел, спасибо большое! Но есть один вопрос: у меня задание вывести таблицу умножения 10х10, это лучше сделать так как Вы показали в конце видео, то бишь через вывод двухмерного массива? Или есть способ покороче?
Спасибо за Ваши труды. Вопросик - а не проще было бы c помощью foreach решить вашу задачу с матрицами? for(int[] items:matrix) { for(int item:items) { System.out.print(item); } System.out.println(); }
@@АртурКамалдинов-я4ш удобнее, но если вы захотите перебрать не готовый массив, а например свой, который вы будете подавать на вход класса Scanner, тогда этот цикл не подходит.
И еще вопрос: Если объявить массив вот так: int[][] matrice2 = {{}, {1,2,3}, {4,5,6,7,8,9}}; и обратиться к элементу matrice2[0], то появляются иероглифы [I@4554617c А если обратиться к элементу matrice2[0][0], то появляется ошибка Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 Почему так? И какой элемент тогда там записан null, 0 или просто пробел?
1) Вы создаете массив массивов. matrice2[0] возвращает элемент под индексом ноль - пустой массив. При выводе массива на экран по умолчанию мы получаем адрес этого массива в памяти компьютера (те самые иероглифы). Чтобы вывести не адрес массива, а его содержимое, необходимо использовать метод Arrays.toString(ваш_массив_здесь); Этот метод возвращает строковое представление массива. 2) Ошибка ArrayIndexOutOfBoundsException возникает тогда, когда вы обращаетесь к несуществующему элементу в массиве. В данном случае (matrice2[0][0]) вы обращаетесь к первому элементу в первом подмассиве. Первый подмассив пустой, поэтому у него нет первого элемента, поэтому возникает ошибка. int[] arr = {}; // в таком массиве ничего не записано.
int i в данном случае просто переменная которая меняет значение при каждом обороте цикла(i++ означает i = i +1), пока не будет равна длине цикла(matrix.length)
Последняя часть не сильно понятно, почему это length равно 3? Просто потому что?! И трем это три числа в каждой скобке или в смысле 3 пары скобок с числами в каждом?
Артём Севрюков Во внешнем цикле length = 3 потому что наш двумерный массив содержит 3 элемента (этими элементами являются переменные ссылочного типа, которые хранят адреса одномерных целочисленных массивов в оперативной памяти). А внутренний цикл при каждом обращении будет возвращать значение length для matrice[i] равное 3, по той простой причине, что все одномерные массивы имеют одинаковый размер и хранят по 3 элемента (то есть, если говорить по простому, то мы имеем квадратную матрицу или таблицу размером 3x3).
Под одним видео (или где-то под этим) нашел вопрос от подписчика про 3х мерный массив. Попробовал разобраться - вроде получилось. Очень интересно было. Думаете ли вы над тем, чтобы в конце ролика (или в описании) давать задания, чтобы решения выкладывали в комментариях подписчики и обсуждали их?
Через foreach for(int[] element:your_array){ for(int element_2:element){ System.out.print(element_2 + " "); } System.out.println(); } Так скажем, элементарный элемент двумерки - одномерка, состоящая из int примитивов. А вот у одномерки элементарный элемент - сами примитивы