å•題
Bookクラスを作æˆã—ã€Objectクラスã®hashCodeメソッドをオーãƒãƒ¼ãƒ©ã‚¤ãƒ‰ã—ã¦ã€Bookオブジェクトã®ãƒãƒƒã‚·ãƒ¥ã‚³ãƒ¼ãƒ‰ã‚’é©åˆ‡ã«è¨ˆç®—ã™ã‚‹ã‚ˆã†ã«ã—ã¦ãã ã•ã„。
ヒント
- é‡è¦ãªãƒ•ィールドã®çµ„ã¿åˆã‚ã›:
hashCodeを計算ã™ã‚‹éš›ã«ã€ã‚¯ãƒ©ã‚¹ã®é‡è¦ãªãƒ•ィールドを組ã¿åˆã‚ã›ã¾ã™ã€‚åŒã˜å€¤ã‚’æŒã¤ã‚ªãƒ–ジェクトã¯åŒã˜ãƒãƒƒã‚·ãƒ¥ã‚³ãƒ¼ãƒ‰ã‚’æŒã¤ã‚ˆã†ã«ã—ã¾ã™ã€‚ - å„フィールドã®ãƒãƒƒã‚·ãƒ¥ã‚³ãƒ¼ãƒ‰å–å¾—: å„フィールドã®ãƒãƒƒã‚·ãƒ¥ã‚³ãƒ¼ãƒ‰ã‚’å–å¾—ã—ã€ã“れらã®å€¤ã‚’組ã¿åˆã‚ã›ã¦å…¨ä½“ã®ãƒãƒƒã‚·ãƒ¥ã‚³ãƒ¼ãƒ‰ã‚’生æˆã—ã¾ã™ã€‚
- null ãƒã‚§ãƒƒã‚¯: フィールドãŒ
nullã®å ´åˆã«å‚™ãˆã¦ã€Objects.hashãªã©ã‚’使用ã—ã¦ãƒãƒƒã‚·ãƒ¥ã‚³ãƒ¼ãƒ‰ã‚’計算ã—ã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€nullフィールドãŒã‚ã£ã¦ã‚‚æ£ã—ããƒãƒƒã‚·ãƒ¥ã‚³ãƒ¼ãƒ‰ã‚’計算ã§ãã¾ã™ã€‚
「ãƒãƒƒã‚·ãƒ¥ã‚³ãƒ¼ãƒ‰ã€ã¨ã¯ï¼Ÿ
ãƒãƒƒã‚·ãƒ¥ã‚³ãƒ¼ãƒ‰ï¼ˆHash Code)ã¯ã€ãƒ‡ãƒ¼ã‚¿ï¼ˆé€šå¸¸ã¯ã‚ªãƒ–ジェクト)を一定ã®é•·ã•ã®æ•°å€¤ã§è¡¨ç¾ã™ã‚‹æ‰‹æ³•ã®ä¸€ã¤ã§ã™ã€‚ã“れã«ã‚ˆã‚Šã€ãƒ‡ãƒ¼ã‚¿ã‚’高速ã‹ã¤åŠ¹çŽ‡çš„ã«è˜åˆ¥ã§ãるよã†ã«ãªã‚Šã¾ã™ã€‚ãƒãƒƒã‚·ãƒ¥ã‚³ãƒ¼ãƒ‰ã¯ã€ãƒãƒƒã‚·ãƒ¥é–¢æ•°ã«ã‚ˆã£ã¦è¨ˆç®—ã•れã€é€šå¸¸ã¯å›ºå®šé•·ã®ãƒ“ット列(整数)ã¨ã—ã¦è¡¨ç¾ã•れã¾ã™ã€‚
ãƒãƒƒã‚·ãƒ¥ã‚³ãƒ¼ãƒ‰ã®ä¸»ãªç‰¹å¾´ã¯ä»¥ä¸‹ã§ã™ï¼š
- ä¸€æ„æ€§ã§ã¯ãªã„: ç•°ãªã‚‹ãƒ‡ãƒ¼ã‚¿ãŒåŒã˜ãƒãƒƒã‚·ãƒ¥ã‚³ãƒ¼ãƒ‰ã‚’æŒã¤ã“ã¨ãŒã‚りã¾ã™ã€‚ã“れをãƒãƒƒã‚·ãƒ¥ã‚³ãƒ¼ãƒ‰ã®è¡çªã¨å‘¼ã³ã¾ã™ã€‚ãŸã ã—ã€å„ªã‚ŒãŸãƒãƒƒã‚·ãƒ¥é–¢æ•°ã¯ç•°ãªã‚‹ãƒ‡ãƒ¼ã‚¿ãŒåŒã˜ãƒãƒƒã‚·ãƒ¥ã‚³ãƒ¼ãƒ‰ã‚’æŒã¤ç¢ºçŽ‡ã‚’æœ€å°é™ã«æŠ‘ãˆã¾ã™ã€‚
- åŒã˜ãƒ‡ãƒ¼ã‚¿ã¯å¸¸ã«åŒã˜ãƒãƒƒã‚·ãƒ¥ã‚³ãƒ¼ãƒ‰: åŒã˜ãƒ‡ãƒ¼ã‚¿ã«å¯¾ã—ã¦ã¯å¸¸ã«åŒã˜ãƒãƒƒã‚·ãƒ¥ã‚³ãƒ¼ãƒ‰ãŒç”Ÿæˆã•れるよã†ã«ãªã£ã¦ã„ã¾ã™ã€‚ã“れãŒä¿è¨¼ã•れãªã„å ´åˆã€ãƒãƒƒã‚·ãƒ¥ãƒ†ãƒ¼ãƒ–ルãªã©ã®ãƒ‡ãƒ¼ã‚¿æ§‹é€ ãŒæ£ã—ã動作ã—ã¾ã›ã‚“。
- 高速性: ãƒãƒƒã‚·ãƒ¥ã‚³ãƒ¼ãƒ‰ã¯é«˜é€Ÿã«è¨ˆç®—ã§ãã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚オブジェクトã®è˜åˆ¥ã‚„ãƒ‡ãƒ¼ã‚¿ã®æ¤œç´¢ãªã©ã€å¤šãã®ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã§ãƒãƒƒã‚·ãƒ¥ã‚³ãƒ¼ãƒ‰ãŒä½¿ç”¨ã•れるãŸã‚ã€é«˜é€Ÿãªè¨ˆç®—ãŒæ±‚ã‚られã¾ã™ã€‚
Javaã«ãŠã„ã¦ã¯ã€hashCode メソッドãŒã‚ªãƒ–ジェクトã®ãƒãƒƒã‚·ãƒ¥ã‚³ãƒ¼ãƒ‰ã‚’æä¾›ã—ã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’オーãƒãƒ¼ãƒ©ã‚¤ãƒ‰ã™ã‚‹ã“ã¨ã§ã€ç‰¹å®šã®ã‚¯ãƒ©ã‚¹ã®ãƒãƒƒã‚·ãƒ¥ã‚³ãƒ¼ãƒ‰ã®ç”Ÿæˆæ–¹æ³•をカスタマイズã§ãã¾ã™ã€‚ãƒãƒƒã‚·ãƒ¥ã‚³ãƒ¼ãƒ‰ã¯ä¸»ã«ãƒãƒƒã‚·ãƒ¥ãƒ†ãƒ¼ãƒ–ルã€ãƒãƒƒã‚·ãƒ¥ã‚»ãƒƒãƒˆã€ãƒãƒƒã‚·ãƒ¥ãƒžãƒƒãƒ—ãªã©ã®ãƒ‡ãƒ¼ã‚¿æ§‹é€ ã§ä½¿ç”¨ã•れã€ã‚ªãƒ–ジェクトを一æ„ã«è˜åˆ¥ã™ã‚‹ãŸã‚ã«åˆ©ç”¨ã•れã¾ã™ã€‚
→解ç”例
「014 継承ã€å•題集リスト
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™


コメント