{"id":5332,"date":"2018-08-06T15:43:25","date_gmt":"2018-08-06T06:43:25","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=5332"},"modified":"2020-05-28T13:41:15","modified_gmt":"2020-05-28T04:41:15","slug":"java%ec%97%90%ec%84%9c-hashmap%ec%9d%84-%ec%9c%84%ed%95%9c-custom-key-%ec%a0%95%ec%9d%98%ed%95%98%ea%b8%b0","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=5332","title":{"rendered":"Java\uc5d0\uc11c HashMap\uc744 \uc704\ud55c Custom Key \uc815\uc758\ud558\uae30"},"content":{"rendered":"<p>Java\uc758 HashMap \uc790\ub8cc\uad6c\uc870\ub294 \uace0\uc720\ud55c \uac12\uc778 Key\uc640 1:1\ub85c \uc5f0\uad00\ub418\ub294 \uac12(Value)\uc744 \ud558\ub098\uc758 \uc30d(Pair)\ub85c \ud558\uc5ec \uc5ec\ub7ec \uac1c\uc758 \uc30d\uc744 \uc800\uc7a5\ud558\ub294 \uc790\ub8cc\uad6c\uc870\uc785\ub2c8\ub2e4. \ud754\ud788 Key \uac12\uc73c\ub85c \ubb38\uc790\uc5f4\uc774\ub098 \uc815\uc218\uac12\uc744 \uc0ac\uc6a9\ud558\ub294 \uac83\uc73c\ub85c\ub3c4 \ucda9\ubd84\ud569\ub2c8\ub2e4. \uadf8\ub7ec\ub098 \uae30\ub2a5\uc5d0 \ub530\ub77c\uc11c \uac1c\ubc1c\uc790\uac00 \ud2b9\ubcc4\ud55c Key\uc5d0 \ub300\ud55c \ud0c0\uc785\uc744 \uc815\uc758\ud574\uc57c\ud560 \ud544\uc694\uac00 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ub9cc\uc57d \uac1c\ubc1c\uc790\uac00 Key \ud0c0\uc785\uc73c\ub85c \uc544\ub798\uc640 \uac19\uc740 \ud074\ub798\uc2a4\ub97c \uc815\uc758\ud588\ub2e4\uace0 \ud569\uc2dc\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">\r\npublic class Identifier {\r\n    private long A;\r\n    private long B;\r\n    private long C;\r\n\t\r\n    public Identifier(long A, long B, long C) {\r\n        this.A = A;\r\n        this.B = B;\r\n        this.C = C;\r\n    }\r\n}\r\n<\/pre>\n<p>\uadf8\ub9ac\uace0 \uc704\uc758 Identifier \ud074\ub798\uc2a4\ub97c Key\ub85c \ud558\ub294 HashMap\uc744 \uc0ac\uc6a9\ud558\ub294 \ucf54\ub4dc\ub97c \uc544\ub798\uc640 \uac19\uc774 \uc791\uc131\ud588\ub2e4\uace0 \ud569\uc2dc\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">\r\nHashMap&lt;Identifier, String> map = new HashMap&lt;Identifier, String>();\r\n\t\t\r\nIdentifier id1 = new Identifier(1,2,3);\r\nmap.put(id1, \"White\");\r\n\t\t\r\nIdentifier id2 = new Identifier(2,1,3);\r\nmap.put(id2, \"Yellow\");\r\n\t\t\r\nIdentifier id3 = new Identifier(2,1,3);\r\nmap.put(id3, \"Red\");\r\n\t\t\r\nSystem.out.println(map.get(id2));\r\n<\/pre>\n<p>Key\ub85c\uc368\uc758 Identifier \ud074\ub798\uc2a4\uc758 \ub3d9\uc77c\uc131\uc744 Identifier\uac00 \uac00\uc9c0\ub294 3\uac1c\uc758 \ud544\ub4dc\uc778 A, B, C\uc758 \ub3d9\uc77c\ud568\uc73c\ub85c \uc815\uc758\ud55c\ub2e4\uace0 \ud560\ub54c, \ub450\uac1c\uc758 Identifier \uac1d\uccb4 o1, o2\uac00 \uc788\ub2e4\uace0 \ud55c\ub2e4\uba74 o1\uacfc o2\uac00 \uac19\uc744 \uc870\uac74\uc740 o1.A == o2.A &#038;&#038; o1.B == o2.B &#038;&#038; o1.C == o2.C\ub77c\uace0 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uc815\uc758\ub300\ub85c\ub77c\uba74 \uc704\uc758 \ucf54\ub4dc\uc758 \uacb0\uacfc\ub294 new Identifier(2,1,3)\uc73c\ub85c \uc0dd\uc131\ub41c \uac1d\uccb4 \uc911 \uac00\uc7a5 \ub9c8\uc9c0\ub9c9\uc73c\ub85c \uc800\uc7a5\ub41c &#8220;Red&#8221; \ubb38\uc790\uc5f4\uc744 \ucd9c\ub825\ud574\uc57c \ud558\ub294\ub370, &#8220;Yellow&#8221;\ub97c \ucd9c\ub825\ud558\uac8c \ub429\ub2c8\ub2e4. \uadf8\ub807\ub2e4\uba74 \uc6d0\ud558\ub294 \uacb0\uacfc\ub97c \uc5bb\uae30 \uc704\ud574\uc11c \ubb34\uc5c7\uc744 \ud574\uc57c \ud560\uae4c\uc694?<\/p>\n<p>HashMap\uc758 Key \ud0c0\uc785\uc73c\ub85c\uc368 \uae30\ub2a5\uc744 \ucda9\uc871\ud558\uae30 \uc704\ud574\uc11c\ub294 Object \ud074\ub798\uc2a4\uc758 equals\uc640 hashCode \ud568\uc218\ub97c \uc7ac\uc815\uc758\ud574\uc57c \ud569\ub2c8\ub2e4. \uc544\ub798\uac00 Identifier \ud074\ub798\uc2a4\uc5d0 \uc774 2\uac1c\uc758 \ud568\uc218\ub97c \uc7ac\uc815\uc758\ud55c \uc804\uccb4 \ucf54\ub4dc\uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">\r\nimport java.util.Objects;\r\n\r\npublic class Identifier {\r\n    private long A;\r\n    private long B;\r\n    private long C;\r\n\t\r\n    public Identifier(long A, long B, long C) {\r\n        this.A = A;\r\n        this.B = B;\r\n        this.C = C;\r\n    }\r\n\t\r\n    @Override\r\n    public boolean equals(Object o) {\r\n        if(this == o) return true;\t\r\n        if(o == null || getClass() != o.getClass()) return false;\r\n\t\t\r\n        Identifier other = (Identifier)o;\r\n\t\t\r\n        return other.A == A && other.B == B && other.C == C;\r\n    }\r\n\t\r\n    @Override\r\n    public int hashCode() {\r\n        int result = (int)(A ^ (A >>> 32));\r\n        \r\n        result = 31 * result + (int)(B ^ (B >>> 32));\r\n        result = 31 * result + (int)(C ^ (C >>> 32));\r\n\t\t\r\n        return result;\r\n    }\r\n}\r\n<\/pre>\n<p>\uc704\uc758 equals \ud568\uc218\ub294 \uc55e\uc11c \uc124\uba85\ud55c \ub3d9\uc77c\uc131\uc5d0 \ub300\ud55c \uc815\uc758\ub97c \ucf54\ub4dc\ub85c \uc791\uc131\ud55c \uac83\uc785\ub2c8\ub2e4. hashCode \ud568\uc218\ub294 \ucd5c\ub300\ud55c \uc911\ubcf5\ub418\uc9c0 \uc54a\uace0 \ub2e4\uc591\ud55c \uac12\uc744 \ubc18\ud658\ud560 \uc218 \uc788\uc5b4\uc57c \ud568\uacfc \ub3d9\uc2dc\uc5d0 \uac19\uc740 \uac12\uc774\ub77c\uace0 \ud55c\ub2e4\uba74 \uac19\uc740 hashCode \uac12\uc744 \ubc18\ud658\ud574\uc57c \ud569\ub2c8\ub2e4. \uc989, new Identifier(2,1,3)\ub97c 2\ubc88 \ud638\ucd9c\ud558\uc5ec 2\uac1c\uc758 \uac1d\uccb4\ub97c \uc0dd\uc131\ud588\ub2e4\uba74 \uc774 2\uac1c\uc758 \uac1d\uccb4\uc5d0 \ub300\ud55c hashCode \ud568\uc218\uc758 \ubc18\ud658\uac12\uc740 \uac19\uc544\uc57c \ud569\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uc870\uac74\uc744 \ucd5c\ub300\ud55c \uc218\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \uc791\uc131\ud588\ub2e4\uace0 \uc791\uc131\ud55c\uac8c \uc704\uc758 hashCode \ud568\uc218\uc758 \uad6c\ud604\uc785\ub2c8\ub2e4\ub9cc&#8230; \uc774\uac8c \uc560\ub9e4\ud55c\uc9c0\ub77c hashCode \ud568\uc218\uc5d0 \ub300\ud574\uc11c\ub9cc\ud07c\uc740 \uc544\ub798\uc758 \ucf54\ub4dc\ub85c \ub300\uccb4\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">\r\n@Override\r\npublic int hashCode() {\r\n    return Objects.hash(A, B, C); \/\/ import java.util.Objects; \uac00 \ud544\uc694\ud568\r\n}\r\n<\/pre>\n<p>\uc774\uc81c \uc2e4\ud589\ud574 \ubcf4\uba74, \uc6b0\ub9ac\uac00 \uc6d0\ud558\ub294 \uacb0\uacfc\ub97c \uc5bb\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\uc0c1\uc73c\ub85c HashMap\uc5d0 \ub300\ud55c Custom Key \ud0c0\uc785\uc744 \uc815\uc758\ud558\ub294 \ubc29\uc2dd\uc5d0 \ub300\ud55c \uc815\ub9ac\uc600\uc2b5\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Java\uc758 HashMap \uc790\ub8cc\uad6c\uc870\ub294 \uace0\uc720\ud55c \uac12\uc778 Key\uc640 1:1\ub85c \uc5f0\uad00\ub418\ub294 \uac12(Value)\uc744 \ud558\ub098\uc758 \uc30d(Pair)\ub85c \ud558\uc5ec \uc5ec\ub7ec \uac1c\uc758 \uc30d\uc744 \uc800\uc7a5\ud558\ub294 \uc790\ub8cc\uad6c\uc870\uc785\ub2c8\ub2e4. \ud754\ud788 Key \uac12\uc73c\ub85c \ubb38\uc790\uc5f4\uc774\ub098 \uc815\uc218\uac12\uc744 \uc0ac\uc6a9\ud558\ub294 \uac83\uc73c\ub85c\ub3c4 \ucda9\ubd84\ud569\ub2c8\ub2e4. \uadf8\ub7ec\ub098 \uae30\ub2a5\uc5d0 \ub530\ub77c\uc11c \uac1c\ubc1c\uc790\uac00 \ud2b9\ubcc4\ud55c Key\uc5d0 \ub300\ud55c \ud0c0\uc785\uc744 \uc815\uc758\ud574\uc57c\ud560 \ud544\uc694\uac00 \uc788\uc2b5\ub2c8\ub2e4. \ub9cc\uc57d \uac1c\ubc1c\uc790\uac00 Key \ud0c0\uc785\uc73c\ub85c \uc544\ub798\uc640 \uac19\uc740 \ud074\ub798\uc2a4\ub97c \uc815\uc758\ud588\ub2e4\uace0 \ud569\uc2dc\ub2e4. public class Identifier { private long A; private long B; &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=5332\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Java\uc5d0\uc11c HashMap\uc744 \uc704\ud55c Custom Key \uc815\uc758\ud558\uae30&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[60],"tags":[],"class_list":["post-5332","post","type-post","status-publish","format-standard","hentry","category-java"],"_links":{"self":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/5332","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5332"}],"version-history":[{"count":8,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/5332\/revisions"}],"predecessor-version":[{"id":9588,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/5332\/revisions\/9588"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5332"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5332"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5332"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}