Урок 19. Правила переопределения методов equals и hashCode [Курсы Java с нуля]

  Рет қаралды 1,792

Artem Vorov

Artem Vorov

Күн бұрын

Пікірлер: 22
@Ignacio-lh9vi
@Ignacio-lh9vi 9 ай бұрын
Редко оставляю комментарии, но тут хочется поблагодарить автора видео. Его курс очень четко описывает выбранные темы, посмотрел выборочно несколько видео по темам, которые вызывали вопросы и самое понятное объяснение нашел на этом канале. Очень жалко, что мало подписчиков, хотя уровень подготовки и реализации видео на высшем уровне!!!
@johnmiller4839
@johnmiller4839 4 ай бұрын
Чётко и подробно. Все бы так объясняли. Лайк
@ovirtv3708
@ovirtv3708 10 ай бұрын
Благодаря видосу я понял equals и hashCode. Хотя до этого много чего читал, и смотрел на ютубе
@anjelomanoranjan
@anjelomanoranjan Жыл бұрын
спасибо! Идеальное видео
@aramzoryan
@aramzoryan 4 жыл бұрын
При вводе промежуточной переменной заработало.
@aramzoryan
@aramzoryan 4 жыл бұрын
Не могу понять, почему не работает строка. map.entrySet().removeIf(entry -> entry.getValue().equals(removeDubl(map))); Если вместо removeDubl(map) вставляешь конкретную строку(через" "), то работает.
@artemvorov
@artemvorov 4 жыл бұрын
Я не вижу реализацию метода removeDubl(), не смогу помочь.
@aramzoryan
@aramzoryan 4 жыл бұрын
Как же сравнить значения элементов в мапе?
@artemvorov
@artemvorov 4 жыл бұрын
Ты можешь получить ключ или значение из пары при помощи методов getKey() и getValue() и потом уже сравнивать эти значения.
@aramzoryan
@aramzoryan 4 жыл бұрын
@@artemvorov С помощью встроенного цикла в цикле?
@aramzoryan
@aramzoryan 4 жыл бұрын
@@artemvorov for (Map.Entry entry : map.entrySet()) { if (entry.getValue().equals(с чем тут сравнивать?)) } У "map.entrySet()" не вызовешь ".getValue()".
@artemvorov
@artemvorov 4 жыл бұрын
@@aramzoryan Да, можешь использовать вложенный цикл
@artemvorov
@artemvorov 4 жыл бұрын
ДЗ: /* Создать словарь (Map) занести в него 5 записей по принципу «Фамилия» - «Имя». Проверить сколько людей имеют совпадающие с заданным имя или фамилию: - создать метод getCountTheSameFirstName(Map map, String name), который должен вернуть количество пар с именем, которое приходит в аргумент name - создать метод getCountTheSameLastName(Map map, String lastName), который должен вернуть количество пар с фамилией, которая приходит в аргумент lastName */ /* Удалить всех людей, родившихся летом Создать словарь (Map) и занести в него 5 записей по принципу: «фамилия» - «дата рождения». Удалить из словаря всех людей, родившихся летом. map.put("Jhon", new Date("JUNE 1 1980")); map.put("Mark", new Date("JUNE 5 1999")); map.put("Elone", new Date("DECEMBER 13 1996")); map.put("Stieve", new Date("JUNE 1 1980")); map.put("Clark", new Date("MARCH 1 1980")); */ /* Удалить людей, имеющих одинаковые имена Создать словарь (Map) занести в него десять записей по принципу «фамилия» - «имя». Удалить людей, имеющих одинаковые имена. map.put("Rooney", "Leo"); map.put("Lloris", "Hugo"); map.put("Messi", "Leo"); map.put("Ronaldo", "Cristiano"); map.put("Maldini", "Paolo"); map.put("Indzaghi", "Pipo"); map.put("Del Piero", "Alesandro"); map.put("Balotelli", "Mario"); map.put("Gotze", "Mario"); map.put("Gomez", "Mario"); */ /* Программа вводит с клавиатуры имя месяца и выводит его номер на экран в виде: «May is 5 month». map.put("January",1); map.put("February",2); map.put("March",3); map.put("April",4); map.put("May",5); map.put("June",6); map.put("July",7); map.put("August",8); map.put("September",9); map.put("October",10); map.put("November",11); map.put("December",12); */
@TSAR_TOP
@TSAR_TOP 4 жыл бұрын
в 1 задаче ловушка джокера, я искал реализации мапы с одинаковыми ключами-фамилиями
@TSAR_TOP
@TSAR_TOP 4 жыл бұрын
Я до сих пор не понял 1 задачу. Получается, нужно вводить просто разные фамилии? Какой тогда смысл проверять количество одинковых, если их либо нет, либо она одна? Или всё таки как-то нужно засунуть в ключи одинаковые фамилии?
@artemvorov
@artemvorov 4 жыл бұрын
@@TSAR_TOP всё верно, фамилия будет максимум одна. Смысл в том, что бы ты поработал с ключами в map :)
@artemvorov
@artemvorov 4 жыл бұрын
@@TSAR_TOP можно конечно и одинаковые фамилии в ключ засунуть, но там уже будет не String, а какой-то кастомный класс, типа User, с полями id, lastName. Но в этой задаче это можно не делать.
@TSAR_TOP
@TSAR_TOP 4 жыл бұрын
@@artemvorov спасибо
@aramzoryan
@aramzoryan 4 жыл бұрын
Два дня пыхтел. Знаний конечно пока не хватает. package com.company.DZ.hashMap5; import java.util.*; public class Main { public static void main(String[] args) { Map map=new HashMap(); map.put("Ivanov","Ivan"); map.put("Popov","Sergey"); map.put("Petrov","Ivan"); map.put("Krylov","Opupey"); map.put("Sidorov","Sergey"); map.put("Drozdov","Varfalamey"); map.put("Drodov","Varfalamey"); map.put("Ordov","Varfalamey"); int i=0; for (Map.Entry entry : map.entrySet()) { i++; } for (int j = 0; j entry.getValue().equals(a)); } for (Map.Entry entry : map.entrySet()) { System.out.println(entry);} } public static String removeDubl(Map map){ String str=null; for (String value : map.values()) { int count=0; for (String s : map.values()) { if (value.equals(s)){ count++; if (count>1){str=value;} } } } return str; } }
@artemvorov
@artemvorov 4 жыл бұрын
А этот кусок кода зачем здесь? int i=0; for (Map.Entry entry : map.entrySet()) { i++; } Это ты так map.size() заменил?)
@aramzoryan
@aramzoryan 4 жыл бұрын
@@artemvorov Забыл про map.size() . Заклинило.
@artemvorov
@artemvorov 4 жыл бұрын
​@@aramzoryan И здесь if (count>1){str=value;} лучше сделать так: if (count > 1) { return value; } Так ты не будешь делать кучу лишних иттераций, а сразу будешь обрывать цикл. Если у тебя count > 1 ты уже можешь сказать, что эту пару надо удалять, а в твоём варианте ты продолжаешь искать повторения, причём даже у других значений.
Java. Методы equals и hashCode.
15:05
Sergey Arkhipov Java Tutorials
Рет қаралды 39 М.
Симбу закрыли дома?! 🔒 #симба #симбочка #арти
00:41
Симбочка Пимпочка
Рет қаралды 6 МЛН
小路飞和小丑也太帅了#家庭#搞笑 #funny #小丑 #cosplay
00:13
家庭搞笑日记
Рет қаралды 10 МЛН
Мясо вегана? 🧐 @Whatthefshow
01:01
История одного вокалиста
Рет қаралды 2 МЛН
Урок 14 - Методы equals и hashCode (прокачанная Java)
19:25
Програмания
Рет қаралды 25 М.
Урок Java 156: переопределение equals
16:10
Уроки Java
Рет қаралды 7 М.
Java. Класс Object. Разбор вопросов на собеседование.
21:16
Sergey Arkhipov Java Tutorials
Рет қаралды 31 М.
Симбу закрыли дома?! 🔒 #симба #симбочка #арти
00:41
Симбочка Пимпочка
Рет қаралды 6 МЛН