{"@context":"http://schema.org","@type":"Question","@id":"https://codegalaxy.io/courses/java-ru/questions/c3f57810cc9742aaa89cf054f7f43729/kakim-budet-rezultat-vypolneniya-dannogo-koda-import-java-util-class-employee-pr","text":"Каким будет результат выполнения данного кода ?\n\u003cpre\u003e\u003ccode class\u003d\"java\"\u003e\nimport java.util.*;\n\nclass Employee {\n    private String name;\n\n    public Employee(String name) {\n        this.name \u003d name;\n    }\n\n    public String toString() {\n        return name;\n    }\n\n    public boolean equals(Object obj) {\n        HashCodeTest.count++;\n\n        if (obj \u003d\u003d null) return false;\n        if (obj.getClass() !\u003d getClass()) return false;\n\n        Employee emp \u003d (Employee) obj;\n        if (this.name \u003d\u003d emp.name) {\n            return true;\n        }\n        return false;\n    }\n\n    public int hashCode(){\n        return name.hashCode();\n    }\n}\n\npublic class HashCodeTest {\n    static int count \u003d 0;\n\n    public static void main(String[] args) {\n\n        Map employees \u003d new HashMap();\n\n        employees.put(new Employee(\"Joe\"), new Integer(\"1\"));\n        employees.put(new Employee(\"Chandler\"), new Integer(\"2\"));\n        employees.put(new Employee(\"Chandler\"), new Integer(\"2\"));\n        employees.put(new Employee(\"Ross\"), new Integer(\"3\"));\n        \n        Iterator iterator \u003d employees.keySet().iterator();\n\n        while (iterator.hasNext()) {\n            System.out.println(iterator.next());\n        }\n\n        System.out.println(count);\n    }\n}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cbr\u003e\nP.S. Для умников - хешкоды строк \"Joe\", \"Chandler\" и \"Ross\" - разные.","headline":"Каким будет результат выполнения данного кода ?\n\u003cpre\u003e\u003ccode class\u003d\"java\"\u003e\nimport java.util.*;\n\nclass Employee {","learningResourceType":["programming test","programming course","programming question"],"isPartOf":{"@type":"Course","@id":"https://codegalaxy.io/courses/java-ru","url":"https://codegalaxy.io/courses/java-ru","name":"Java Quiz","description":"Java - объектно-ориентированный кросс-платформенный язык программирования, предназначенный для удобства чтения и интероперабельности. Java обычно читается как легкая и простая версия языка Си++. Тем не менее, Java может использоваться как полная версия для создания приложений, которые могут работать на всех платформах, поддерживающих Java, без необходимости перекомпиляции. В 2020 году Java является самым популярным языком программирования, с которым работают более 9 миллионов разработчиков. \u003cbr\u003e\nЭтот обучающий курс полностью посвящен \u003cstrong\u003eJava языку\u003c/strong\u003e, где вы можете проверить свои знания и ответить на \u003cstrong\u003e вопросы интервью по Java\u003c/strong\u003e. Вы ответите на теоретические и практические вопросы, которые проверяют ваши навыки на понимание \u003cstrong\u003e Java-кода\u003c/strong\u003e и поиска ошибок.\n\u003cbr\u003e\nВы можете вернуться к этому java курсу когда захотите, так как он постоянно обновляется и добавляются новые вопросы и задачки!\n\nПереведено с помощью www.DeepL.com/Translator (бесплатная версия)","provider":{"@type":"Organization","@id":"https://codegalaxy.io","name":"CodeGalaxy","logo":{"@type":"ImageObject","url":"https://codegalaxy.io/app/assets/images/g_code.png","height":"513","width":"513"},"description":"Project aimed to provide new ways in learning programming languages and preparing for the interview."},"image":{"@type":"ImageObject","url":"https://codegalaxy.io/app/assets/images/fb/16x9/share-java-ru.png","height":"630","width":"1200"}},"image":{"@type":"ImageObject","url":"https://codegalaxy.io/app/assets/images/fb/16x9/share-java-ru.png","height":"630","width":"1200"},"answerCount":6,"potentialAction":[{"@type":"AssessAction","object":{"@type":"Question","@id":"https://codegalaxy.io/courses/java-ru/questions/c3f57810cc9742aaa89cf054f7f43729/kakim-budet-rezultat-vypolneniya-dannogo-koda-import-java-util-class-employee-pr"}},{"@type":"ChooseAction","actionOption":[{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/c3f57810cc9742aaa89cf054f7f43729/kakim-budet-rezultat-vypolneniya-dannogo-koda-import-java-util-class-employee-pr#19949","url":"https://codegalaxy.io/courses/java-ru/questions/c3f57810cc9742aaa89cf054f7f43729/kakim-budet-rezultat-vypolneniya-dannogo-koda-import-java-util-class-employee-pr#19949","text":"Chandler\u003cbr\u003e\nJoe\u003cbr\u003e\nRoss\u003cbr\u003e\n1","dateCreated":"2020-02-06"},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/c3f57810cc9742aaa89cf054f7f43729/kakim-budet-rezultat-vypolneniya-dannogo-koda-import-java-util-class-employee-pr#19950","url":"https://codegalaxy.io/courses/java-ru/questions/c3f57810cc9742aaa89cf054f7f43729/kakim-budet-rezultat-vypolneniya-dannogo-koda-import-java-util-class-employee-pr#19950","text":"Chandler\u003cbr\u003e\nChandler\u003cbr\u003e\nJoe\u003cbr\u003e\nRoss\u003cbr\u003e\n1","dateCreated":"2020-02-06"},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/c3f57810cc9742aaa89cf054f7f43729/kakim-budet-rezultat-vypolneniya-dannogo-koda-import-java-util-class-employee-pr#19951","url":"https://codegalaxy.io/courses/java-ru/questions/c3f57810cc9742aaa89cf054f7f43729/kakim-budet-rezultat-vypolneniya-dannogo-koda-import-java-util-class-employee-pr#19951","text":"Chandler\u003cbr\u003e\nJoe\u003cbr\u003e\nRoss\u003cbr\u003e\n9","dateCreated":"2020-02-06"},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/c3f57810cc9742aaa89cf054f7f43729/kakim-budet-rezultat-vypolneniya-dannogo-koda-import-java-util-class-employee-pr#19952","url":"https://codegalaxy.io/courses/java-ru/questions/c3f57810cc9742aaa89cf054f7f43729/kakim-budet-rezultat-vypolneniya-dannogo-koda-import-java-util-class-employee-pr#19952","text":"Chandler\u003cbr\u003e\nChandler\u003cbr\u003e\nJoe\u003cbr\u003e\nRoss\u003cbr\u003e\n7","dateCreated":"2020-02-06"},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/c3f57810cc9742aaa89cf054f7f43729/kakim-budet-rezultat-vypolneniya-dannogo-koda-import-java-util-class-employee-pr#19953","url":"https://codegalaxy.io/courses/java-ru/questions/c3f57810cc9742aaa89cf054f7f43729/kakim-budet-rezultat-vypolneniya-dannogo-koda-import-java-util-class-employee-pr#19953","text":"Ошибка компиляции","dateCreated":"2020-02-06"}],"object":{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/c3f57810cc9742aaa89cf054f7f43729/kakim-budet-rezultat-vypolneniya-dannogo-koda-import-java-util-class-employee-pr#19949","url":"https://codegalaxy.io/courses/java-ru/questions/c3f57810cc9742aaa89cf054f7f43729/kakim-budet-rezultat-vypolneniya-dannogo-koda-import-java-util-class-employee-pr#19949","text":"Chandler\u003cbr\u003e\nJoe\u003cbr\u003e\nRoss\u003cbr\u003e\n1","dateCreated":"2020-02-06"}}],"audience":{"@type":"EducationalAudience","audienceType":["developers","programmers"],"educationalRole":["Specialist","Student"],"alternateName":"Java Programmers","name":"Java Developers","sameAs":["https://en.wikipedia.org/wiki/Programmer","https://en.wikipedia.org/wiki/Software_developer","https://en.wikipedia.org/wiki/Software_engineer","https://en.wikipedia.org/wiki/Web_developer"]},"dateCreated":"2020-02-06","acceptedAnswer":[{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/c3f57810cc9742aaa89cf054f7f43729/kakim-budet-rezultat-vypolneniya-dannogo-koda-import-java-util-class-employee-pr#js-expander-trigger","url":"https://codegalaxy.io/courses/java-ru/questions/c3f57810cc9742aaa89cf054f7f43729/kakim-budet-rezultat-vypolneniya-dannogo-koda-import-java-util-class-employee-pr#js-expander-trigger","text":"Если при добавлении пары ключ-значение в Map оказывается, что там уже содержится такой ключ, ему в соответствие ставится новое значение.\u003cbr\u003e\nВ классе Employee метод equals() реализован таким образом, что равными считаются два объекта, содержащие одну и ту же ссылку на строку name (this.name \u003d\u003d emp.name). Поэтому из двух объектов-ключей, содержащих ссылку на строку-константу \"Chandler\", в Map\u0027е остаётся только один.\nПоле count используется для подсчёта количества вызовов метода Employee.equals(). При работе с HashMap метод equals() вызывается относительно редко, например, когда хэш-код вновь добавляемого ключа совпадает с хэш-кодом ранее добавленного ключа - чтобы достоверно убедиться, что это одинаковые объекты (равенство хэш-кодов ещё не гарантирует равенство объектов). В данном примере такое происходит ровно один раз, при повторном добавлении Chandler\u0027а.","about":{"@type":"Question","@id":"https://codegalaxy.io/courses/java-ru/questions/c3f57810cc9742aaa89cf054f7f43729/kakim-budet-rezultat-vypolneniya-dannogo-koda-import-java-util-class-employee-pr"},"upvoteCount":1,"dateCreated":"2020-02-06"},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/c3f57810cc9742aaa89cf054f7f43729/kakim-budet-rezultat-vypolneniya-dannogo-koda-import-java-util-class-employee-pr#19949","url":"https://codegalaxy.io/courses/java-ru/questions/c3f57810cc9742aaa89cf054f7f43729/kakim-budet-rezultat-vypolneniya-dannogo-koda-import-java-util-class-employee-pr#19949","text":"Chandler\u003cbr\u003e\nJoe\u003cbr\u003e\nRoss\u003cbr\u003e\n1","dateCreated":"2020-02-06","upvoteCount":1}],"suggestedAnswer":[{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/c3f57810cc9742aaa89cf054f7f43729/kakim-budet-rezultat-vypolneniya-dannogo-koda-import-java-util-class-employee-pr#19950","url":"https://codegalaxy.io/courses/java-ru/questions/c3f57810cc9742aaa89cf054f7f43729/kakim-budet-rezultat-vypolneniya-dannogo-koda-import-java-util-class-employee-pr#19950","text":"Chandler\u003cbr\u003e\nChandler\u003cbr\u003e\nJoe\u003cbr\u003e\nRoss\u003cbr\u003e\n1","dateCreated":"2020-02-06","upvoteCount":0},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/c3f57810cc9742aaa89cf054f7f43729/kakim-budet-rezultat-vypolneniya-dannogo-koda-import-java-util-class-employee-pr#19951","url":"https://codegalaxy.io/courses/java-ru/questions/c3f57810cc9742aaa89cf054f7f43729/kakim-budet-rezultat-vypolneniya-dannogo-koda-import-java-util-class-employee-pr#19951","text":"Chandler\u003cbr\u003e\nJoe\u003cbr\u003e\nRoss\u003cbr\u003e\n9","dateCreated":"2020-02-06","upvoteCount":0},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/c3f57810cc9742aaa89cf054f7f43729/kakim-budet-rezultat-vypolneniya-dannogo-koda-import-java-util-class-employee-pr#19952","url":"https://codegalaxy.io/courses/java-ru/questions/c3f57810cc9742aaa89cf054f7f43729/kakim-budet-rezultat-vypolneniya-dannogo-koda-import-java-util-class-employee-pr#19952","text":"Chandler\u003cbr\u003e\nChandler\u003cbr\u003e\nJoe\u003cbr\u003e\nRoss\u003cbr\u003e\n7","dateCreated":"2020-02-06","upvoteCount":0},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/c3f57810cc9742aaa89cf054f7f43729/kakim-budet-rezultat-vypolneniya-dannogo-koda-import-java-util-class-employee-pr#19953","url":"https://codegalaxy.io/courses/java-ru/questions/c3f57810cc9742aaa89cf054f7f43729/kakim-budet-rezultat-vypolneniya-dannogo-koda-import-java-util-class-employee-pr#19953","text":"Ошибка компиляции","dateCreated":"2020-02-06","upvoteCount":0}]}