Из-за затыка в обучении пришлось вернуться к первым урокам.. Блин.. сколько же "воды" и метаний из стороны в сторону.. все что до 36:30 можно просто вырезать... :)
Ну у тебя такое чувство, потому что ты ничего не понимаешь. Залезь сама в исходные библиотеки и разберись тогда, посмотрю как у тебя получится хоть что-то оттуда понять.
@@DmitriuTT так она же не лезет кому то что то объяснять) Мне вот после Вашего комментария непонятно - как люди с нарушением способности построения причинно-следственных конструкций могут заниматься программированием? Ну представим - учитель объясняет теорему Пифагора. Клапсс видит - педагог запутался. Ничего не понятно. Тогда педагог кричит - да идите попробуйте сами разобраться, чего вы пристали?! Возникает резонный вопрос - а ЗАЧЕМ ДЕТИ ПРИШЛИ В ШКОЛУ? Согласен с предыдущим комменатором - данный урок никакой, я бы на месте автора его перезаписал. Разобравшись сначала, конечно. Труд то проделан немалый - 400 видео снято. Ничего личного. Что касается Вашего комментария - конечно, придется использовать другие источники, чтобы разобраться, а чтож еще делать?!
Можно ли переопределить hashCode() таким образом , чтобы его код генерировался по итераций. То есть , начиная от 0 до ... n + 1. Рентабельно ли такое вообще?
На сколько я понял ,например, хешмап нужен чтобы передавать "Книги" в ячейки хеш таблицы, и потом, к примеру, на сервер. Он соединяется с сервером и передает данные. Единственное что не смог найти, например у нас есть база данных - покупки. Я обычно создавал текстовые файл с кодировкой, где нибудь на жестком диске. Если применить хешмап то куда эти файлики полетят в память компьютера?, я так и не понял.
у меня при переопределении equals , а именно в этом месте if (o == null || getClass() != o.getClass()); return false; почему то Unreachable statement ,подскажите пожалуйста
Я уверен, что вопрос уже не актуален, но отвечу. Если это полный код метода, то что вы вернете если условие не выполнится? Вообще по соглашению разработчиков множественный return не приветствуется. Можно переписать например так boolean result= true; if (o == null || getClass() != o.getClass()); result =false; return result;
@@AntonSidor-n2k естественно все зависит от ситуации, но обычно различные результаты получаются в цепочке условий, так что если грамотно эту цепь сделать, то не будет никаких лишних трат ресурсов.
Я правильно рассуждаю? Для hashMap если hashCode возвращает: 1) последовательные значение, то бакеты будут быстро заполняться и мапа будет часто перехешироваться, что ухудшит производительность 2) одно и то же значение, то сложность алгоритма превратится из возможно константной в гарантированно линейную, что ухудшит производительность 3) разные значения для одного объекта, то мы не сможем найти наш объект
как я понял ticket это ключ, и представим у нас 15млрд книг. Тут же понятно, что хешкоды будут повторяться. А представим я хочу по ключу получить книгу и тут по этому ключу несколько книг. Откуда ему знать какую именно книгу я хочу? Думаю чуть поняли, просто вопрос не могу нормально сформулировать)))
Если ticket это ключ, то он должен переопределять equals и hashcode. По хэшкоду находим бакет в котором лежат книги с одинаковыми хешами, а по equals определяем какая конкретно книга нам нужна.
Как в тикете может быть 3-и книги? Три книги может быть в мапе. Мы в мапу передаем тикет и по хэшкоду получаем бакет в котором лежит книга, если в бакете лежит несколько книг, мы по equals определяем какую именно книгу мы ищем.
Нет Map и Set(-ы) (из Java Collection FrameWork) В процессе роботы сравнивают екземпляри разних класов. И помагают им в етом HashCode и Equals В начале они проверяют обект по hashcod (-у) если етот код разний значит обекти разние и все больше ничего не делается для сравнения. Если хеш одинаковий то обєкти ещо раз проверяются но Equals(ом) и тогда точно можна сказать одинаковие обекти или нет. Просто у хеш кода может такое быть что для разних обектов згенерируется один хеш.
Чё-то я про инты задумался) ты примерно на 26 минуте про 4 млрд говоришь. Действительно - int это 2 в 32 степени. 4 млрд и 290 млн примерно... но Integer.MAX_VALUE около 2 млрд 147 млн... и инициализировать int aa = 2_150_000_000; компилятор не позволяет. Почему? Типа из-за того, что вторая половина под отрицательные значения отводится?
Лайк + уважение за труд автору автоматом, но если бы я из другого курса не знал как это работает то вряд ли бы понял по этом видосе. Автор, зачем так усложнять?
Автору - перезапишите этот урок. Если в предыдущих уроках оговорки как тог еще заметны и смысл в общем понятен, то здесь полная галиматься. Только не обижайтесь, пожалуйста. Все равно я Вам признателен за Ваше время.
А от куда такие данные? Поделитесь ссылкой! А то вот в документации по Java пишут что это адрес объекта в памяти преобразовынный в int. вот ссылка - docs.oracle.com/javase/7/docs/api/java/lang/Object.html#hashCode%28%29 Обратите внимание на строчку - "This is typically implemented by converting the internal address of the object into an integer". Но Вы можете написать в Oracle о том что у них в документации ошибка, и на самом деле hashCode возвращает "случайное позитивное число у пределах примитива int"
Вот, прочтите эту статью, где указаны исходники на реализацию этого метода на С++. habrahabr.ru/post/165683/ И здесь более подробно: habrahabr.ru/company/mailru/blog/321306/
...то есть как я понимаю вы бы предпочли что бы автор "обосрал" данный не плохой, быстрый урок огромной кучей непонятной инфы про ШЕСТЬ различных методов получения хэшКода, каждый из которых реализован на разных джаваМашинах? Да, вы, сударь по всей видимости ещё тот любитель попердеть мозгом! :))) Вы наверно ТОЖЕ автор замечательных уроков по джаве, поделитесь ссылкой?
Мы тут программисты. Вы не на том канале. Это не русский с литературой. То что в языке какие то формы недопустимы говорит о его ущербности! С хера ли на слово ложить действуют какие то особенные правила? Нахера такая шняга нам нужна в языке??? Чем чаще мы будем ложить тем быстрей эти дебилы введут эту форму в официальный обиход!!! Идите туда, где учат тех, кто учит то, что не имеет отношения к тому, что учим мы!!!!!!!!!!! Присвоил Сережа?
Обожаю, когда этот чел приводит примеры, которые не компилируются))) но уроки риал топ у него)
Просто супер урок, проходил эту тему на JavaRush, понял но с гигантским трудом, а тут всё просто и понятно, спасибо автору
Из-за затыка в обучении пришлось вернуться к первым урокам.. Блин.. сколько же "воды" и метаний из стороны в сторону.. все что до 36:30 можно просто вырезать... :)
Ну. Ты видимо не новичок в джава. Эти видео предназначены для новичков типа меня
Спасибо
11:55 просто ору...говорит давайте без этого xD
P.S. А урок в принципе годный ;)
Огромное спасибо за этот труд! Всё очень понятно разжёвано!
Такое ощущение, что автор сам запутался, но мужественно и хитро продолжает "объяснять" материал)))
Ну у тебя такое чувство, потому что ты ничего не понимаешь. Залезь сама в исходные библиотеки и разберись тогда, посмотрю как у тебя получится хоть что-то оттуда понять.
@@DmitriuTT так она же не лезет кому то что то объяснять) Мне вот после Вашего комментария непонятно - как люди с нарушением способности построения причинно-следственных конструкций могут заниматься программированием? Ну представим - учитель объясняет теорему Пифагора. Клапсс видит - педагог запутался. Ничего не понятно. Тогда педагог кричит - да идите попробуйте сами разобраться, чего вы пристали?! Возникает резонный вопрос - а ЗАЧЕМ ДЕТИ ПРИШЛИ В ШКОЛУ? Согласен с предыдущим комменатором - данный урок никакой, я бы на месте автора его перезаписал. Разобравшись сначала, конечно. Труд то проделан немалый - 400 видео снято. Ничего личного. Что касается Вашего комментария - конечно, придется использовать другие источники, чтобы разобраться, а чтож еще делать?!
override equals,hashcode через alt+insert
Можно ли переопределить hashCode() таким образом , чтобы его код генерировался по итераций. То есть , начиная от 0 до ... n + 1. Рентабельно ли такое вообще?
Огромное спасибо за визуальные примеры! Обязательно визуализируйте сложные участки для подробного объяснения.
Как сделать так, что бы показывало все методы класса как в начале видео?
Тоже хочу знать, особенно в eclipse
На сколько я понял ,например, хешмап нужен чтобы передавать "Книги" в ячейки хеш таблицы, и потом, к примеру, на сервер. Он соединяется с сервером и передает данные. Единственное что не смог найти, например у нас есть база данных - покупки. Я обычно создавал текстовые файл с кодировкой, где нибудь на жестком диске. Если применить хешмап то куда эти файлики полетят в память компьютера?, я так и не понял.
у меня при переопределении equals , а именно в этом месте
if (o == null || getClass() != o.getClass());
return false;
почему то Unreachable statement
,подскажите пожалуйста
Я уверен, что вопрос уже не актуален, но отвечу. Если это полный код метода, то что вы вернете если условие не выполнится? Вообще по соглашению разработчиков множественный return не приветствуется. Можно переписать например так
boolean result= true;
if (o == null || getClass() != o.getClass());
result =false;
return result;
@@Pavel-n Я не уверен но если так работать то в пустую тратятся ресурсы.
А так ретурнув что надо и вышел из метода
Зачем же весь метод выполнять
@@AntonSidor-n2k естественно все зависит от ситуации, но обычно различные результаты получаются в цепочке условий, так что если грамотно эту цепь сделать, то не будет никаких лишних трат ресурсов.
А как сгенерировать методи?
Тяжело, но мне кажется понятнее невозможно рассказать. Спасибо! :)
а я думал белым цветом по белому не возможно рисовать)\
Если бы еще это знание оплачивалось как знание Java)
Я правильно рассуждаю?
Для hashMap если hashCode возвращает:
1) последовательные значение, то бакеты будут быстро заполняться и мапа будет часто перехешироваться, что ухудшит производительность
2) одно и то же значение, то сложность алгоритма превратится из возможно константной в гарантированно линейную, что ухудшит производительность
3) разные значения для одного объекта, то мы не сможем найти наш объект
кажется странным, что нет явного вызова методов equals и hashcode
Из-за этого трудно понять, как это работает
как я понял ticket это ключ, и представим у нас 15млрд книг. Тут же понятно, что хешкоды будут повторяться. А представим я хочу по ключу получить книгу и тут по этому ключу несколько книг. Откуда ему знать какую именно книгу я хочу? Думаю чуть поняли, просто вопрос не могу нормально сформулировать)))
Если ticket это ключ, то он должен переопределять equals и hashcode. По хэшкоду находим бакет в котором лежат книги с одинаковыми хешами, а по equals определяем какая конкретно книга нам нужна.
Уроки Java ок, допустим я делаю так map.get(ticket) и в этом ticket е 3 книги, тогда как оно по equals может знать какая именно книга мне нужна?
Как в тикете может быть 3-и книги? Три книги может быть в мапе. Мы в мапу передаем тикет и по хэшкоду получаем бакет в котором лежит книга, если в бакете лежит несколько книг, мы по equals определяем какую именно книгу мы ищем.
ключи не повторяются
Иначе говоря, equals() сравнивает хэшкоды объектов? Я правильно понял?
Нет Map и Set(-ы) (из Java Collection FrameWork) В процессе роботы сравнивают екземпляри разних класов.
И помагают им в етом HashCode и Equals В начале они проверяют обект по hashcod (-у) если етот код разний значит обекти разние и все больше ничего не делается для сравнения. Если хеш одинаковий то обєкти ещо раз проверяются но Equals(ом) и тогда точно можна сказать одинаковие обекти или нет. Просто у хеш кода может такое быть что для разних обектов згенерируется один хеш.
Чё-то я про инты задумался) ты примерно на 26 минуте про 4 млрд говоришь. Действительно - int это 2 в 32 степени. 4 млрд и 290 млн примерно... но Integer.MAX_VALUE около 2 млрд 147 млн... и инициализировать int aa = 2_150_000_000; компилятор не позволяет. Почему? Типа из-за того, что вторая половина под отрицательные значения отводится?
да
Либрари))
По ходу не один я запоминал как это пишется на нашем языке а произносится отдельно)
Спасибо, очень понятно!!!
Спасибо за урок
Лайк + уважение за труд автору автоматом, но если бы я из другого курса не знал как это работает то вряд ли бы понял по этом видосе. Автор, зачем так усложнять?
Та что это за 25 кадр?
Реклама Linux Mint?
Не совсем понятно по синтаксису. Что за скобки ;
В 56 уроке рассказывается о то что это за скобки - ua-cam.com/video/LF8ETKQQEXg/v-deo.html
Дженерики
Нужно хорошо знать мап чтоб понять что аффтар доносит. Но лайк
Смотрю все поэтапно. Вполне можно понять, но надо напрячься. Хотя мб помогает знание других языков, но подобного там не изучал.
Автору - перезапишите этот урок. Если в предыдущих уроках оговорки как тог еще заметны и смысл в общем понятен, то здесь полная галиматься. Только не обижайтесь, пожалуйста. Все равно я Вам признателен за Ваше время.
ааа сложновато немного))
hashcode() дэфолтный у класа Object не возвращает адресу памяти, а случайное позитивное число у пределах примитива int
А от куда такие данные? Поделитесь ссылкой! А то вот в документации по Java пишут что это адрес объекта в памяти преобразовынный в int. вот ссылка - docs.oracle.com/javase/7/docs/api/java/lang/Object.html#hashCode%28%29 Обратите внимание на строчку - "This is typically implemented by converting the internal address of the object into an integer". Но Вы можете написать в Oracle о том что у них в документации ошибка, и на самом деле hashCode возвращает "случайное позитивное число у пределах примитива int"
Вот, прочтите эту статью, где указаны исходники на реализацию этого метода на С++.
habrahabr.ru/post/165683/
И здесь более подробно:
habrahabr.ru/company/mailru/blog/321306/
Значит эта статья права, а в документации ошибка.
...то есть как я понимаю вы бы предпочли что бы автор "обосрал" данный не плохой, быстрый урок огромной кучей непонятной инфы про ШЕСТЬ различных методов получения хэшКода, каждый из которых реализован на разных джаваМашинах? Да, вы, сударь по всей видимости ещё тот любитель попердеть мозгом! :))) Вы наверно ТОЖЕ автор замечательных уроков по джаве, поделитесь ссылкой?
@@husivm разве Typically не оставляет шанса, что может быть реализовано и по-другому?
С 10:47 до 12:00 ор
Уроки понятные, всё нормально но вот Энглиш скилл режет слух
как-то совсем непонятно
наверное, 1-я такая непонятная лекция
всё равно спасибо за труд
Если урок про Equals and HashCode, то зачем обсуждать лишнее?
Мапа - это карта по-украински)
"ложат"... знаешь что "ложат"? а все остальное КЛАДУТ!!!
это не урок русского языка
@@MrMaksimsergeevich везде где не урок русского языка, можно обходиться и без него)
Мы тут программисты. Вы не на том канале. Это не русский с литературой. То что в языке какие то формы недопустимы говорит о его ущербности! С хера ли на слово ложить действуют какие то особенные правила? Нахера такая шняга нам нужна в языке???
Чем чаще мы будем ложить тем быстрей эти дебилы введут эту форму в официальный обиход!!! Идите туда, где учат тех, кто учит то, что не имеет отношения к тому, что учим мы!!!!!!!!!!! Присвоил Сережа?
расейское, иди учи свой руский.
автор почитай про hashcode лучше
Что читать? Что не так?
ля ляпнул и ушел)
@@husivm спасибо за твои уроки! Некоторые правда сложноваты, но всё равно спасибо!
@@atlasua2021 Спасибо, очень приятно читать такие комментарии!