Урок 20 - Введение в Set. HashSet (прокачанная Java)

  Рет қаралды 22,598

Програмания

Програмания

Күн бұрын

Java для прокачанных: set hashset
Разъяснение тем любой сложности доступным языком на простых примерах
Автор курса: Заур Трегулов (zaurtregulov@gmail.com)
Скидка на курс "JAVA - получи Чёрный Пояс!"
STEPIK:
stepik.org/a/1...
UDEMY:
www.udemy.com/...
**************************************************************************************************
Вы также можете по СКИДОЧНОЙ ЦЕНЕ приобрести готовый набор моих курсов по JAVA:
stepik.org/a/2...
или набор курсов, необходимый для JAVA ДЖУНА:
stepik.org/a/2...

Пікірлер: 48
@reclreclur7203
@reclreclur7203 4 күн бұрын
Заур, спасибо вам! Все как всегда на высоте!
@nizat_rum
@nizat_rum 2 ай бұрын
Лучший просто! После твоих уроков и эккеля реализовываю собственные хешированные сеты и мапы
@kiriljaske7505
@kiriljaske7505 2 ай бұрын
1
@user-wg5yw8tw7s
@user-wg5yw8tw7s 3 ай бұрын
Твои уроки просто бомба, все просто и понятно. Не останавливайся брат, твои уроки реально помогают мне
@qwerty32198
@qwerty32198 Жыл бұрын
12:15 - Кстати IntelliJ Idea умеет делать множественный курсор при зажатом колесе. Попробуйте, должно понравиться )
@badfyrepytweed3374
@badfyrepytweed3374 3 жыл бұрын
Большое спасибо, ясное изложение мысли!
@greenkingshop1033
@greenkingshop1033 2 жыл бұрын
Спасибо еще раз, прям супер!)
@natalysammet656
@natalysammet656 Жыл бұрын
Когда нужно внести одинаковые изменения одновременно на нескольких строках(как на моменте 12:08), можно зажать alt и, удерживая ЛКМ, переместить курсор вдоль нужных строк (как будто вы их выделяете). Я заметила, что автор этой фичей идеи не пользуется - подумала, может, не знает и ему будет полезно :)
@natalysammet656
@natalysammet656 Жыл бұрын
Еще можно через хот кей shift+f6 (или ctrl+f6, точно не помню, но в intellij idea это написано) сделать rename для переменной, тогда не придется вручную её везде переименовывать. Возможно, это будет полезно не только автору, но и зрителям
@programaniya
@programaniya Жыл бұрын
Благодарю, что делитесь полезной информацией. Обычно в курсах я очень редко использую горячие клавиши, особенно в уроках, которые выкладываю на KZbin. В противном случае, у зрителя возникает очень много вопросов, как внезапно появился тот или иной участок кода.
@olydashko
@olydashko Жыл бұрын
Спасибо за очередной отличный урок 🤩
@MaximKe4up
@MaximKe4up 2 жыл бұрын
9:31 , автор начал говорить рифмами
@---zk6lz
@---zk6lz 2 жыл бұрын
хорошие лекции у вас. подскажите в полном курсе на юдеми материал в уроках только лекционный или есть ещё какие то практические уроки/задания?
@programaniya
@programaniya 2 жыл бұрын
Здравствуйте. Данный курс состоит только из видео-уроков.
@user-zm3fo1uj6w
@user-zm3fo1uj6w Жыл бұрын
Здравствуйте, почему вместо значений в HashSet не положить null, для чего там каждый раз создается new Object?
@programaniya
@programaniya Жыл бұрын
Здравствуйте. Хороший вопрос. Я думаю вот из-за чего. HashSet использует методы HashMap. Возьмём, например, метод remove. Он возвращает value элемента, который вы удаляете, либо null, если такого элемента нет. Теперь взгляните на метод remove у HashSet, который использует метод remove из HashMap: return map.remove(o)==PRESENT; Здесь осуществляется проверка, является ли удалённый элемент объектом PRESENT (это new Object про который вы и задали вопрос). И получается, что, если бы в качестве значения в HashSet добавлялся null, тогда, в том случае, если метод remove не удалил бы элемент из HashSet, метод всё равно бы возвращал true, что было бы некорректным.
@programming_amo
@programming_amo 2 жыл бұрын
could u say me, what i will get additionally if i bay your cource, sir?
@programaniya
@programaniya 2 жыл бұрын
On my youtube channel you can watch only part of my courses. So if you buy full course, you will get all lessons and ability to ask questions.
@programming_amo
@programming_amo 2 жыл бұрын
@@programaniya thanks
@user-cl3kn8hn3z
@user-cl3kn8hn3z 3 жыл бұрын
Здравствуйте! Возник вопрос: почему при использовании метода addAll числа были упорядочены от меньшего к большему, разве union не должен был вывести их в случайном порядке?
@programaniya
@programaniya 3 жыл бұрын
В основе HashSet лежит HashMap, в основе которого массив. Каждый элемент этого массива - это LinkedList. Распределение элементов в данный массив таково, что числа добавляются по возрастанию. То есть addAll никакой роли в данном порядке не сыграл. Добавьте в HashSet в разброску любые числа и выведите его на экран. Вы увидете, что соблюдается порядок.
@user-ps7op6gc2t
@user-ps7op6gc2t 2 жыл бұрын
@@programaniya так ведь в linked list элементы никак не сортируются
@user-ps7op6gc2t
@user-ps7op6gc2t 2 жыл бұрын
@@programaniya это просто набор связанных нод
@RiksevStreams
@RiksevStreams 2 жыл бұрын
Из-за хэш-кода создается иллюзия того, что все числа упорядочены. На самом деле если взять больший разброс, например 10-ть цифр от 0 до 1000, то будет такая ситуация: [464, 33, 722, 947, 470, 311, 235, 955, 765, 126]. То-есть числа всегда становятся в определенном порядке в зависимости от индекса, который им рассчитывает hashcode(). В данном видео из-за маленьких шагов между числами может создаться впечатление, что происходит сортировка согласно реальной системы счислений.
@killerbe3669
@killerbe3669 2 жыл бұрын
у меня почему то retainAll не работает, intersect пустной выходит
@programaniya
@programaniya 2 жыл бұрын
Пришлите скрины, чтобы можно было взглянуть.
@WhiteWay-tx9qt
@WhiteWay-tx9qt Жыл бұрын
У меня тоже
@zamzamacademy777
@zamzamacademy777 2 жыл бұрын
👍
@Annonymouseification
@Annonymouseification 2 жыл бұрын
Вопрос, скорее всего глупый: почему 5:10 нужно писать psvm? Почему без этого просто в классе это работать не будет?
@programaniya
@programaniya 2 жыл бұрын
Подобного рода действия где-то должны быть записаны, например, в методе. А чтобы они ещё и выполнились, нам необходимо использовать метод main.
@Anastazi_Mart
@Anastazi_Mart 6 ай бұрын
Подскажите, пожалуйста, как выделить из множества Set 2 наибольших по значению элемента?
@programaniya
@programaniya 6 ай бұрын
У вас есть какой-то свой вариант?
@Anastazi_Mart
@Anastazi_Mart 6 ай бұрын
@programaniya пытаюсь решить такое задание, верно ли, что часть с переменными long там не обязательна? Можно оставить только цикл for? Дан класс ConsoleInputService, основная задача которого, это считывать числа из консоли. Наша компания заинтересовалась, сколько в среднем тратит пользователь на ввод числа с клавиатуры. Предлагаем вам усовершенствовать код таким образом, чтобы в консоль выводилось количество секунд - это время, за которое пользователь вводит число из консоли. Решение должно отвечать следующим критериям: предоставленные классы нельзя изменять (за исключением первой строки метода main, можно изменять только реализацию интерфейса); после имплементации данного функционала, код должен работать совершенно так же: выбрасывать те же ошибки и возвращать те же значения; в консоль должно выводиться количество секунд, которые тратит пользователь на ввод числа. Предсказать, чтобы результат выводился с точностью 3 знака после запятой; нельзя использовать дублирование кода. Предлагаем стартовый код: public class Main { public static void main(String[] args) { InputService inputService = new ConsoleInputService(); int input = inputService.getInteger(); System.out.printf("Input: %d", input); } } public interface InputService { Integer getInteger(); } public class ConsoleInputService implements InputService { private final Scanner scanner = новый Scanner(System.in); @Override public Integer getInteger() { return scanner.nextInt(); } }
@programaniya
@programaniya 6 ай бұрын
Дорогие подписчики канала, предлагаю потренироваться :)
@programaniya
@programaniya 6 ай бұрын
Дорогие подписчики канала, предлагаю потренироваться :)
@EctxD
@EctxD 2 жыл бұрын
Вопрос, при создание union используеться:HashSet union = new HashSet(hashSet1); В чём проблема использвать это? (среда разработки ругается) HashSet union = new HashSet; Я так понимаю потому что в таком раскладе не выделяется память а просто ссылается? Или в чём проблема
@programaniya
@programaniya 2 жыл бұрын
new HashSet писать нельзя. У конструктора всегда есть круглые скобки.
@koteehka69
@koteehka69 Жыл бұрын
А почему у меня при объединении (Union) не добавился 0? У меня hS1 - 1,2,3 hS2 - 0,1,2 А при объединении hS1.addAll(hS2) - получилось 1,2,3
@programaniya
@programaniya Жыл бұрын
Чтобы ответить на ваши вопросы, необходимо увидеть скрины кода.
@koteehka69
@koteehka69 Жыл бұрын
@@programaniya спасибо что откликнулись, я уже разобралась правда) просто сама допустила ошибку про не внимательности) У вас отличная подача материала, и вообще огромное спасибо что вы есть
@user-kw6mk6mu2n
@user-kw6mk6mu2n 2 жыл бұрын
Рассказываешь конечно хорошо. Но звук это просто издевательство над людьми невозможно слушать просто
@programaniya
@programaniya 2 жыл бұрын
А что со звуком?
@user-kw6mk6mu2n
@user-kw6mk6mu2n 2 жыл бұрын
@@programaniya Гул какой то стоит
@dashcamlife1524
@dashcamlife1524 2 жыл бұрын
Согласен, будто собака лает
@dashcamlife1524
@dashcamlife1524 2 жыл бұрын
Удаляй это видео лучше
Урок 21 - TreeSet (прокачанная Java)
12:22
Програмания
Рет қаралды 13 М.
Set and HashSet in Java - Full Tutorial
20:43
Coding with John
Рет қаралды 215 М.
Throwing Swords From My Blue Cybertruck
00:32
Mini Katana
Рет қаралды 11 МЛН
Zombie Boy Saved My Life 💚
00:29
Alan Chikin Chow
Рет қаралды 35 МЛН
Men Vs Women Survive The Wilderness For $500,000
31:48
MrBeast
Рет қаралды 59 МЛН
Выпуск 22. hashCode() и equals() - самое главное.
21:16
Изучаем Java
Рет қаралды 28 М.
HashSet и HashMap в Java на практике
15:41
Тимофей Коваленко
Рет қаралды 2,6 М.
Java. Об Iterator и Iterable c примерами.
16:20
Sergey Arkhipov Java Tutorials
Рет қаралды 24 М.
Методы sleep и join. Thread states (прокачанная Java)
20:10
Програмания
Рет қаралды 10 М.
Java для начинающих. 19.12 TreeMap
17:00
dmdev
Рет қаралды 7 М.
Throwing Swords From My Blue Cybertruck
00:32
Mini Katana
Рет қаралды 11 МЛН