Java для начинающих. 7.3 Практика массивов

preview_player
Показать описание
На занятии попрактикуемся в решении задач, связанных с одномерными и многомерными массивами. Рассмотрим еще одну вариацию цикла for для последовательного чтения данных (foreach).
Ссылка на код с занятия:

Домашнее задание::
Решение к нему:

Ссылка на все мои курсы:

Для оформления подписки на канал жми ссылку:

00:00 - Введение
00:31 - Задача №1 итерирование в обычном порядке
02:30 - Цикл foreach
04:58 - Задача №1 итерирование в обратном порядке
07:12 - Задача №2
12:05 - Вызов функций из других классов
13:37 - Использование унарного оператора в указании индекса массива
14:17 - Инициализация и изменение нескольких переменных в цикле for
15:28 - Задача №3
23:22 - Задача №4
25:47 - Нахождение минимального элемента массива
28:41 - Нахождение максимального элемента массива
30:20 - Нахождение суммы элементов между min и max
35:15 - Правило трех стаканов
36:29 - Выводы
Рекомендации по теме
Комментарии
Автор

Всем доброго дня! 1.5 месяца, как начал заниматься java, первый раз встречаю настолько толковое объяснение данной темы!
Огромное спасибо автору!!!

МаксМакс-чк
Автор

Дружище, спасибо!!! Решение с созданием отдельно переменной currentIndex и отдельно currentValue - ваще огонь!!!Мне пригодилось, когда надо было массив распилить на две части и каждую часть просчитывать отдельно =))

pipa-pgkp
Автор

Большое спасибо за материал, за толковое объяснение! Мне помогает Ваш канал в изучении Java

SvetlanaGarcia
Автор

я начинающий жавер, ваше видео поможет стать профи жавистом, огромное спасибо вам!!!

Elitehome.textile
Автор

Аналогия про "три стакана" 👍🏻 вы просто пушка 😎😅😅раньше не понимал, сейчас всё Окей!

rysnurlanov
Автор

замечательно входит)))) и выходит!)))) на17й минуте вспомнилось))))

khrom-hj
Автор

Денис, привет еще раз.
1. Я наверное переучился, но так и не понял для чего мы вызывали функцию из предыдущего занятия)
Вроде же все с нынешней функцией было хорошо, кроме того, что она не выводила на консоль результат. Но это же можно было прописать.

2. Третье задание это просто вынос мозга, я уже к row1 и row2 поплыл, тяжело))
Иногда очень хочется, чтобы как для тупых объяснял, но, видимо, тогда ролики были бы по 2 часа)

Спасибо за курс!

ДмитрийКустов-уо
Автор

И всё таки minValue и maxValue нужно обязательно создавать, иначе не правильно считает компилятор (или правильно, но я, например, не понимаю как)

ГаннибалБарка-лр
Автор

Проверка всех соответствующих элементов двухмерных массивов на равенство. Без проверки эксепшенов.
Работает с равными массивами с одинаковыми размерами всех строк. Выдает в консоль все соответствующие значения.


public static void equals(int[][] firstArray, int[][] secondArray) {

int columnIndex = 0;
int[] row1 = firstArray[0];
for (int rowIndex = 0; rowIndex < firstArray.length; rowIndex++) {

for (int i = 0; i < row1.length; i++) {
if ==
System.out.println("arrays " + "[" + rowIndex + "][" + columnIndex + "] are equals!");
}
columnIndex++;
}
columnIndex = 0;
}

xirrantos
Автор

13:23 а как тогда получились значения 500, 600, 700, если надо вывести только значения в диапазоне 100?

profesor
Автор

на 29:16 как ты меняешь строки местами?

gamespacestudio
Автор

я пересмотрел трижды, повторяя все действия из видео в ИДЕ-шке, и так до конца не понял последние задания, то есть не могу сам все повторить без подсмотра в видео, это вообще нормально или я такой тупой?

playwithmary
Автор

Спасибо за видео! А если мне нужно вывести в консоль не 1 5 7 9 11, а например [1, 5, 7, 9, 11]? Спасибо ❤

grigoriyfedorov
Автор

не подумал о испльзовании оператора если в задаче два, реализация fillarray через for
int CurrentValue = 1;
for (int i = 0; i < value.length; i++) {
value[i] = CurrentValue;
for (int j = CurrentValue; !(j % 13 == 0 || j % 17 == 0); j++) {
value[i] = j + 1;
}
CurrentValue = value[i] + 1;
}

ТимофейФейк
Автор

Привет, я из будущего. Если вы уже решили ДЗ по теме, и до сих пор думаете над Task3, в частности о том, зачем при слиянии двух массивов использовать один цикл с проверкой условий?

Ведь можно же проще, обойтись без проверок в теле цикла, и вместо одного цикла использовать два - в первом цикле последовательно скопировав в результирующий массив данные из первого массива,
а затем во втором цикле последовательно скопировав данные из второго массива в результирующий. Что-то вроде этого:

private static int[] mergeTwoArrays(int[] array1, int[] array2) {
int len1 = array1.length;
int len2 = array2.length;
int[] resultArray = new int[len1 + len2];
for (int i = 0; i < len1; i++) {
resultArray[i] = array1[i];
}
for (int i = 0; i < len2; i++) {
resultArray[len1+i] = array2[i];
}
return resultArray;
}

На самом деле то можно и обойтись без проверок внутри тела цикла, но вот эти самые условия в теле цикла:
"if (index1 < values1.length && index2 < values2.length)"
это элементы из алгоритма сортировки слиянием,
и там нужно два предварительно отсортированных массива слить в один отсортированный массив. И когда вы будете изучать базы данных, то увидите, что при соединении двух таблиц элементы из алгоритма mergeSort тоже используются.
И знание этого алгоритма позволит вам понять его временную сложность. А временную сложность нужно уметь оценивать при манипуляции с любыми данными.
Алгоритм сортировки слиянием конечно же сложнее чем простое слияние двух рандомных массивов, поэтому для начала
нужно разобраться с логикой, которая представлена в решении автора, на гитхабе. Именно разобраться и если логика ясна, то двигаться дальше, всё ок! 🥳

alexxxyzzz
Автор

что за плагин на текст ? красиво очень выглядит

LANg.gg
Автор

во второй задаче у меня выводит следующее: 13 17 26 34 39 51 52 65 68 78 85 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
подскажите почему?

senior-blacksmith
Автор

упс, задача №2 неправильно = забыл currentValue с 0 пустить

kotbegemot
Автор

Капец, все равно в голове не укладывается, нафига столько значений?Зачем этот индекс, зачем надо было писать лишний раз row1, row2). Такая матрешка, голова раскалывается).

alexegvon
Автор

даже на 0.75 плохо... лутчше уж другое что то найду

ЮраКубинець