Урок по Java 49: Equals and HashCode

Поділитися
Вставка
  • Опубліковано 19 гру 2024

КОМЕНТАРІ •

  • @ИльяИванов-ж8з6ъ
    @ИльяИванов-ж8з6ъ 3 роки тому +10

    Обожаю, когда этот чел приводит примеры, которые не компилируются))) но уроки риал топ у него)

  • @kosntantinlysenko5934
    @kosntantinlysenko5934 2 роки тому +1

    Просто супер урок, проходил эту тему на JavaRush, понял но с гигантским трудом, а тут всё просто и понятно, спасибо автору

  • @soulreaver785
    @soulreaver785 7 років тому +46

    Из-за затыка в обучении пришлось вернуться к первым урокам.. Блин.. сколько же "воды" и метаний из стороны в сторону.. все что до 36:30 можно просто вырезать... :)

    • @prometheusmusic4559
      @prometheusmusic4559 5 років тому +4

      Ну. Ты видимо не новичок в джава. Эти видео предназначены для новичков типа меня

    • @СашаНемо-з2ы
      @СашаНемо-з2ы 4 роки тому

      Спасибо

  • @artonext
    @artonext 4 роки тому +7

    11:55 просто ору...говорит давайте без этого xD
    P.S. А урок в принципе годный ;)

  • @maksimdenlov1236
    @maksimdenlov1236 6 років тому +4

    Огромное спасибо за этот труд! Всё очень понятно разжёвано!

  • @СофьяБорисенко-о8ы
    @СофьяБорисенко-о8ы 6 років тому +24

    Такое ощущение, что автор сам запутался, но мужественно и хитро продолжает "объяснять" материал)))

    • @DmitriuTT
      @DmitriuTT 3 роки тому +4

      Ну у тебя такое чувство, потому что ты ничего не понимаешь. Залезь сама в исходные библиотеки и разберись тогда, посмотрю как у тебя получится хоть что-то оттуда понять.

    • @wilsonikner1167
      @wilsonikner1167 Рік тому +1

      @@DmitriuTT так она же не лезет кому то что то объяснять) Мне вот после Вашего комментария непонятно - как люди с нарушением способности построения причинно-следственных конструкций могут заниматься программированием? Ну представим - учитель объясняет теорему Пифагора. Клапсс видит - педагог запутался. Ничего не понятно. Тогда педагог кричит - да идите попробуйте сами разобраться, чего вы пристали?! Возникает резонный вопрос - а ЗАЧЕМ ДЕТИ ПРИШЛИ В ШКОЛУ? Согласен с предыдущим комменатором - данный урок никакой, я бы на месте автора его перезаписал. Разобравшись сначала, конечно. Труд то проделан немалый - 400 видео снято. Ничего личного. Что касается Вашего комментария - конечно, придется использовать другие источники, чтобы разобраться, а чтож еще делать?!

  • @yuraitsrainingtoday3187
    @yuraitsrainingtoday3187 6 років тому +3

    override equals,hashcode через alt+insert

  • @ДимаБарков-м5ч
    @ДимаБарков-м5ч 5 років тому +2

    Можно ли переопределить hashCode() таким образом , чтобы его код генерировался по итераций. То есть , начиная от 0 до ... n + 1. Рентабельно ли такое вообще?

  • @mulyarlamartov8252
    @mulyarlamartov8252 7 років тому

    Огромное спасибо за визуальные примеры! Обязательно визуализируйте сложные участки для подробного объяснения.

  • @Rick137-C.
    @Rick137-C. 4 роки тому +1

    Как сделать так, что бы показывало все методы класса как в начале видео?

  • @tanzwud1
    @tanzwud1 6 років тому

    На сколько я понял ,например, хешмап нужен чтобы передавать "Книги" в ячейки хеш таблицы, и потом, к примеру, на сервер. Он соединяется с сервером и передает данные. Единственное что не смог найти, например у нас есть база данных - покупки. Я обычно создавал текстовые файл с кодировкой, где нибудь на жестком диске. Если применить хешмап то куда эти файлики полетят в память компьютера?, я так и не понял.

  • @НикитаЗуев-г3п
    @НикитаЗуев-г3п 6 років тому

    у меня при переопределении equals , а именно в этом месте
    if (o == null || getClass() != o.getClass());
    return false;
    почему то Unreachable statement
    ,подскажите пожалуйста

    • @Pavel-n
      @Pavel-n 6 років тому

      Я уверен, что вопрос уже не актуален, но отвечу. Если это полный код метода, то что вы вернете если условие не выполнится? Вообще по соглашению разработчиков множественный return не приветствуется. Можно переписать например так
      boolean result= true;
      if (o == null || getClass() != o.getClass());
      result =false;
      return result;

    • @AntonSidor-n2k
      @AntonSidor-n2k 5 років тому

      ​@@Pavel-n Я не уверен но если так работать то в пустую тратятся ресурсы.
      А так ретурнув что надо и вышел из метода
      Зачем же весь метод выполнять

    • @Pavel-n
      @Pavel-n 5 років тому +1

      @@AntonSidor-n2k естественно все зависит от ситуации, но обычно различные результаты получаются в цепочке условий, так что если грамотно эту цепь сделать, то не будет никаких лишних трат ресурсов.

  • @innarrt
    @innarrt 3 роки тому

    А как сгенерировать методи?

  • @richterDG
    @richterDG 7 років тому +5

    Тяжело, но мне кажется понятнее невозможно рассказать. Спасибо! :)

  • @mykolapylypenko
    @mykolapylypenko 6 років тому +14

    а я думал белым цветом по белому не возможно рисовать)\

  • @MrMaksimsergeevich
    @MrMaksimsergeevich 6 років тому

    Я правильно рассуждаю?
    Для hashMap если hashCode возвращает:
    1) последовательные значение, то бакеты будут быстро заполняться и мапа будет часто перехешироваться, что ухудшит производительность
    2) одно и то же значение, то сложность алгоритма превратится из возможно константной в гарантированно линейную, что ухудшит производительность
    3) разные значения для одного объекта, то мы не сможем найти наш объект

  • @ilya5755
    @ilya5755 2 роки тому

    кажется странным, что нет явного вызова методов equals и hashcode
    Из-за этого трудно понять, как это работает

  • @haykmkrtchyan7093
    @haykmkrtchyan7093 6 років тому

    как я понял ticket это ключ, и представим у нас 15млрд книг. Тут же понятно, что хешкоды будут повторяться. А представим я хочу по ключу получить книгу и тут по этому ключу несколько книг. Откуда ему знать какую именно книгу я хочу? Думаю чуть поняли, просто вопрос не могу нормально сформулировать)))

    • @husivm
      @husivm  6 років тому +1

      Если ticket это ключ, то он должен переопределять equals и hashcode. По хэшкоду находим бакет в котором лежат книги с одинаковыми хешами, а по equals определяем какая конкретно книга нам нужна.

    • @haykmkrtchyan7093
      @haykmkrtchyan7093 6 років тому

      Уроки Java ок, допустим я делаю так map.get(ticket) и в этом ticket е 3 книги, тогда как оно по equals может знать какая именно книга мне нужна?

    • @husivm
      @husivm  6 років тому +1

      Как в тикете может быть 3-и книги? Три книги может быть в мапе. Мы в мапу передаем тикет и по хэшкоду получаем бакет в котором лежит книга, если в бакете лежит несколько книг, мы по equals определяем какую именно книгу мы ищем.

    • @DairaGames
      @DairaGames 4 роки тому

      ключи не повторяются

  • @prometheusmusic4559
    @prometheusmusic4559 5 років тому

    Иначе говоря, equals() сравнивает хэшкоды объектов? Я правильно понял?

    • @AntonSidor-n2k
      @AntonSidor-n2k 5 років тому

      Нет Map и Set(-ы) (из Java Collection FrameWork) В процессе роботы сравнивают екземпляри разних класов.
      И помагают им в етом HashCode и Equals В начале они проверяют обект по hashcod (-у) если етот код разний значит обекти разние и все больше ничего не делается для сравнения. Если хеш одинаковий то обєкти ещо раз проверяются но Equals(ом) и тогда точно можна сказать одинаковие обекти или нет. Просто у хеш кода может такое быть что для разних обектов згенерируется один хеш.

  • @MrMaksimsergeevich
    @MrMaksimsergeevich 6 років тому +1

    Чё-то я про инты задумался) ты примерно на 26 минуте про 4 млрд говоришь. Действительно - int это 2 в 32 степени. 4 млрд и 290 млн примерно... но Integer.MAX_VALUE около 2 млрд 147 млн... и инициализировать int aa = 2_150_000_000; компилятор не позволяет. Почему? Типа из-за того, что вторая половина под отрицательные значения отводится?

  • @ВладимирМирошниченко-ж2ш

    Либрари))
    По ходу не один я запоминал как это пишется на нашем языке а произносится отдельно)

  • @takezo_kyiv
    @takezo_kyiv 6 років тому

    Спасибо, очень понятно!!!

  • @ВладМаложон
    @ВладМаложон 6 років тому

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

  • @bohdankravchuk4396
    @bohdankravchuk4396 3 роки тому

    Лайк + уважение за труд автору автоматом, но если бы я из другого курса не знал как это работает то вряд ли бы понял по этом видосе. Автор, зачем так усложнять?

  • @Yaro-q6p
    @Yaro-q6p 6 років тому +5

    Та что это за 25 кадр?

  • @seregayasinskiy780
    @seregayasinskiy780 8 років тому +1

    Не совсем понятно по синтаксису. Что за скобки ;

    • @husivm
      @husivm  8 років тому +1

      В 56 уроке рассказывается о то что это за скобки - ua-cam.com/video/LF8ETKQQEXg/v-deo.html

    • @user-danunahui
      @user-danunahui 6 років тому

      Дженерики

  • @alexdolgoff4358
    @alexdolgoff4358 7 років тому +2

    Нужно хорошо знать мап чтоб понять что аффтар доносит. Но лайк

    • @richterDG
      @richterDG 7 років тому +1

      Смотрю все поэтапно. Вполне можно понять, но надо напрячься. Хотя мб помогает знание других языков, но подобного там не изучал.

  • @wilsonikner1167
    @wilsonikner1167 Рік тому

    Автору - перезапишите этот урок. Если в предыдущих уроках оговорки как тог еще заметны и смысл в общем понятен, то здесь полная галиматься. Только не обижайтесь, пожалуйста. Все равно я Вам признателен за Ваше время.

  • @haykmkrtchyan7093
    @haykmkrtchyan7093 7 років тому +2

    ааа сложновато немного))

  • @vladyslavkuhivchak4998
    @vladyslavkuhivchak4998 7 років тому +3

    hashcode() дэфолтный у класа Object не возвращает адресу памяти, а случайное позитивное число у пределах примитива int

    • @husivm
      @husivm  7 років тому +4

      А от куда такие данные? Поделитесь ссылкой! А то вот в документации по 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"

    • @vladyslavkuhivchak4998
      @vladyslavkuhivchak4998 7 років тому +3

      Вот, прочтите эту статью, где указаны исходники на реализацию этого метода на С++.
      habrahabr.ru/post/165683/
      И здесь более подробно:
      habrahabr.ru/company/mailru/blog/321306/

    • @husivm
      @husivm  7 років тому +8

      Значит эта статья права, а в документации ошибка.

    • @filidorZeliony
      @filidorZeliony 7 років тому +1

      ...то есть как я понимаю вы бы предпочли что бы автор "обосрал" данный не плохой, быстрый урок огромной кучей непонятной инфы про ШЕСТЬ различных методов получения хэшКода, каждый из которых реализован на разных джаваМашинах? Да, вы, сударь по всей видимости ещё тот любитель попердеть мозгом! :))) Вы наверно ТОЖЕ автор замечательных уроков по джаве, поделитесь ссылкой?

    • @ruslan-macari
      @ruslan-macari 6 років тому

      @@husivm разве Typically не оставляет шанса, что может быть реализовано и по-другому?

  • @ИльяИванов-ж8з6ъ
    @ИльяИванов-ж8з6ъ 3 роки тому +1

    С 10:47 до 12:00 ор

  • @Sk2V1D1
    @Sk2V1D1 6 років тому +2

    Уроки понятные, всё нормально но вот Энглиш скилл режет слух

  • @stakanovi4
    @stakanovi4 4 роки тому +1

    как-то совсем непонятно
    наверное, 1-я такая непонятная лекция
    всё равно спасибо за труд

  • @leodev87
    @leodev87 6 років тому +1

    Если урок про Equals and HashCode, то зачем обсуждать лишнее?

  • @ІванДмитренко-х6э
    @ІванДмитренко-х6э 3 роки тому

    Мапа - это карта по-украински)

  • @СергейЧирков-н8й
    @СергейЧирков-н8й 6 років тому

    "ложат"... знаешь что "ложат"? а все остальное КЛАДУТ!!!

    • @MrMaksimsergeevich
      @MrMaksimsergeevich 6 років тому +1

      это не урок русского языка

    • @galina5194
      @galina5194 5 років тому

      @@MrMaksimsergeevich везде где не урок русского языка, можно обходиться и без него)

    • @dimenty_opinion
      @dimenty_opinion 5 років тому +1

      Мы тут программисты. Вы не на том канале. Это не русский с литературой. То что в языке какие то формы недопустимы говорит о его ущербности! С хера ли на слово ложить действуют какие то особенные правила? Нахера такая шняга нам нужна в языке???
      Чем чаще мы будем ложить тем быстрей эти дебилы введут эту форму в официальный обиход!!! Идите туда, где учат тех, кто учит то, что не имеет отношения к тому, что учим мы!!!!!!!!!!! Присвоил Сережа?

    • @atlasua2021
      @atlasua2021 3 роки тому

      расейское, иди учи свой руский.

  • @timurakhalaya6289
    @timurakhalaya6289 3 роки тому

    автор почитай про hashcode лучше

    • @husivm
      @husivm  3 роки тому +1

      Что читать? Что не так?

    • @atlasua2021
      @atlasua2021 3 роки тому

      ля ляпнул и ушел)

    • @atlasua2021
      @atlasua2021 3 роки тому

      @@husivm спасибо за твои уроки! Некоторые правда сложноваты, но всё равно спасибо!

    • @husivm
      @husivm  3 роки тому +1

      @@atlasua2021 Спасибо, очень приятно читать такие комментарии!