æè¿ãç§ã¯å°éèœåã®éçºãéåžžã«é
ããªã£ããšåºãæã£ãŠããŸããã ã¯ããæ¬ãèªãã§ãã³ãŒã¹ãèŽããŸãããåæã«ã転è·ã®æãæ¥ãŠãããããããªããšããçè§£ããããŸããããã§ãã¹ãŠãç ç©¶ãããããã§ãåŸã
ã«ã«ãŒãã³ã«ç§»è¡ããŠããŸãã ãã®ã¢ã€ãã¢ã¯ãå±¥æŽæžãããã€ãã®äŒæ¥ãã€ãŸãåžå ŽãªãŒããŒã«éãããšãç§ã«ä¿ããŸããã ãã®ãã¡3人ã§ã€ã³ã¿ãã¥ãŒãå®äºããåŸã5ã€ã®ã³ããã¯ãã€ã³ã¿ãã¥ãŒã®åºç¯ãªãããã¯ãã€ãŸãç§ã察åŠããªããã°ãªããªãJavaã³ã¬ã¯ã·ã§ã³ã®æè¡çãªåé¡ãåãäžããæ¹æ³ã決ããŸããã ã¯ããç§ã¯ç¥ã£ãŠããŸããèªè
ã¯ãã³ã¬ã¯ã·ã§ã³ã¯å¯èœãªéãããã¯ããããããã¯ã§ãããšèšãã§ãããããã¢ã¹ã¯ã¯ããé ããªãé éå°ã®åºæºã§éçºè
ã®äœçœ®ãæ£ç¢ºã«å ããéçºè
ã§ããç§ã®ç¥ãåãã«ä»¥äžã®è³ªåã®äžéšãå°ããŸããïŒã匷ãäžé蟲æ°ãïŒåœŒãã¯å®éã«èªåã®ä»äºã«å¯ŸåŠããŠããŸãããçè«çã«ã¯ã®ã£ããããããŸããä»äºã«ã¯ããã€ãã®éèŠãªã¿ã¹ã¯ã解決ããå¿
èŠããªãããããããŠèª°ããããŒã¿æ§é ãã©ã®ããã«æ©èœããããç ç©¶ããããšã«èå³ããªããããæ··ä¹±ãçããŸããã è°è«ãããè³æã¯ããžã¥ãã¢ã¬ãã«ä»¥äžã®éçºè
ã«ãšã£ãŠããŸãè峿·±ããã®ã§ã¯ãªããšæããŸãïŒããã§ç޹ä»ããè³æã«ã³ã¡ã³ããè£è¶³ãæ¹å€ãããããé¡ãããŸãïŒããJuniorã¯ãã®èšäºã§èªåèªèº«ã«ãšã£ãŠè峿·±ããã®ã«ãªããšç¢ºä¿¡ããŠããŸãã
ççŽã«èšã£ãŠãã€ã³ã¿ãã¥ãŒã®éãç§ã¯ä»¥äžã®è³ªåã®ããã€ãã®çããç¥ããŸããã§ãããããžã¥ãã¢ã¹ããŒãžã¯ãã§ã«éããããã§ãã ããã¯ã人äºãšã®ã³ãã¥ãã±ãŒã·ã§ã³ããå°æ¥ã®æŽ»åã®å¯èœæ§ã«è³ããŸã§ãã¹ãŠã«å
±æãçããäŒæ¥ã®ããžã·ã§ã³ããªãã¡ãŒãåŸãããšãã§ãããåŠçã§ããªãã³ã¬ã¯ã·ã§ã³ã«é¢ãã質åããã£ããšããäºå®ãèãããšãäºéã«äžå¿«ã§ã圌ãã¯åŠå®çãªè²¢ç®ãããïŒã ããããã€ã³ã¿ãã¥ãŒã®èгç¹ãããã¹ãŠãéåžžã«ããŸããã£ããšããã§ãææ¡ãããæŽ»ååéãšå°æ¥ã®ååãšã®ã³ãã¥ãã±ãŒã·ã§ã³ã¯å
šäœãšããŠåŠå®çã§ããããå¹³å¡ãã®æ³åã¯ãã¹ãŠæ å
ã«ãããŸãã ãã®çµæããã®ãããã¯ã§ã¯ãé ã®äžã«ããã®ã£ãããåããŠããã®ç¥èãçŽã®äžã§äœç³»åããããšæããŸãã
ãã®èšäºã§ã¯ãååã®ã€ã³ã¿ãã¥ãŒã§åé¡ãåŒãèµ·ããã質åã ãã§ãªããã€ã³ã¿ãã¥ãŒã®ãã¹ãŠã®å®è·µã§æ±ãããã質åãæ€èšããŸãã ããŠã質åã«ç§»ãæãæ¥ããšæããŸãã
1. ArrayListãšLinkedListã®éãã¯äœã§ããïŒ
ç§ã®ã©ã³ãã³ã°ã§ã¯ãããã¯ã³ã¬ã¯ã·ã§ã³ã«é¢ãã2ã€ã®æãäžè¬çãªè³ªåã®1ã€ã§ãããã±ãŒã¹ã®90ïŒ
ã§å°ããŠããŸãã Junior Developerã§ã®æåã®ã€ã³ã¿ãã¥ãŒã§åé¡ãçºçããŸããã ã€ãŸãããã®è³ªåã«å¯Ÿããçãã¯æ¬¡ã®ããã«èŠçŽãããŸããArrayListã¯é
åããŒã¹ã®ãªã¹ãã§ãããLinkedListã¯ãããã®éã«ãªã³ã¯ããããªããžã§ã¯ãã«åºã¥ãå€å
žçãªãªã³ã¯ãªã¹ãã§ãã
ArrayListã®å©ç¹ïŒäžå®ã®æéïŒé
åã§ããããïŒã€ã³ããã¯ã¹ã«ãã£ãŠä»»æã®èŠçŽ ã«ã¢ã¯ã»ã¹ã§ããæ©èœã§ã¯ããã®ãããªãªã¹ããä¿åãããšãã®ãªãŒããŒããããæå°éã«æãããããªã¹ãã®æåŸãžã®æ¿å
¥ãäžå®ã®æéå¹³åã§å®è¡ãããŸãã å¹³åã㊠ãé
åã«ã¯ç¹å®ã®åæãµã€ãºnïŒã³ãŒãã§ã¯ããã容éãã©ã¡ãŒã¿ãŒïŒããããããããã©ã«ãã§ã¯n = 10ã§ãn + 1èŠçŽ ãæžã蟌ããšããµã€ãºïŒn * 3ïŒ/ 2 + 1ã®æ°ããé
åãäœæãããå€ãé
åã®ãã¹ãŠã®èŠçŽ ãé
眮ãããæ°ããèŠçŽ ã远å ãããŸãã çµæãšããŠãé
åãæ¡åŒµããå¿
èŠãããå Žåã«èŠçŽ ã远å ãããšã宿ãã空ã®ã»ã«ã«èŠçŽ ãæžã蟌ãå Žåãããè¿œå æéãé·ããªããŸãã ãã ããå¹³åããŠããªã¹ãã®æåŸã«ããã¢ã€ãã ã®æ¿å
¥æéã¯äžå®ã§ãã æåŸã®ã¢ã€ãã ã®åé€ã¯äžå®ã®æéã§è¡ãããŸãã ãªã¹ãã®äžå€®ã«èŠçŽ ãæ¿å
¥/åé€ãããšãArrayListã®æ¬ ç¹ãçŸããŸããããã«ããããªã¹ãã®ãå³åŽãã«é
眮ããããã¹ãŠã®èŠçŽ ãå·Šã«1ããžã·ã§ã³äžæžããããŸããããã«ãèŠçŽ ãåé€ãããšãtrimToSizeïŒïŒã¡ãœãããæç€ºçã«åŒã³åºããããŸã§ãé
åã®ãµã€ãºã¯æžå°ããŸããã
å察ã«ãLinkedListã¯äžå®ã®æéãªã¹ãå
ã®èŠçŽ ãæ¿å
¥/åé€ã§ããŸãïŒæ¿å
¥ãšåé€ã§ããæ¿å
¥ãšåé€ã®äœçœ®ã®æ€çŽ¢ã¯ããã«ã¯å«ãŸããŸããïŒã ä»»æã®èŠçŽ ãžã®ã¢ã¯ã»ã¹ã¯ç·åœ¢æéã§å®è¡ãããŸãïŒãã ãããªã¹ãã®æåãšæåŸã®èŠçŽ ãžã®ã¢ã¯ã»ã¹ã¯åžžã«äžå®ã®æéã§å®è¡ãããŸã-ãªã³ã¯ã¯åžžã«æåãšæåŸã«ä¿åãããããããªã¹ãã®æåŸã«èŠçŽ ã远å ããŠããæåŸãæ€çŽ¢ããŠãªã¹ãå
šäœãå埩ããå¿
èŠã¯ãããŸããã¢ã€ãã ïŒã äžè¬ã«ãLinkedListã¯çµ¶å¯Ÿçãªæå³ã§ãã¡ã¢ãªæ¶è²»ãšæäœé床ã®äž¡æ¹ã§ArrayListã倱ããŸãã LinkedListã¯ããªã¹ãã®äžå€®ã§ã¢ã¯ãã£ããªäœæ¥ïŒæ¿å
¥/åé€ïŒãããå ŽåããŸãã¯ãªã¹ãã«ã¢ã€ãã ã远å ããããã«ä¿èšŒæéãå¿
èŠãªå Žåã«äœ¿çšããããšã奜ãŸããã
詳现ãªãã¬ãŒãã³ã°ãšåæã«ãšã¯ã¹ãã¬ã¹ãã¬ãŒãã³ã°ã«ã€ããŠã¯ã ArrayListãšArrayListã«é¢ããçŽ æŽãããèšäºãèªãããšã匷ããå§ãããŸãã ã³ã¬ã¯ã·ã§ã³ã«ããã¡ã¢ãªæ¶è²»ã«é¢ããlanyã®èšäºããå§ãããŸã- éåžžã«æçã§ãã
2.éåžžã¯äœã䜿çšããŸããïŒArrayListãŸãã¯LinkedListïŒïŒ ãªãã§ïŒ
ãã®è³ªåãžã®åçã¯ãåã®è³ªåãžã®åçã®æ®µéçãªæç€ºã«ã€ãªããããããã®è³ªåã¯ãåã®è³ªåã®å°ãå€è£
ããããŒãžã§ã³ã§ãã 90ïŒ
ã®å ŽåãArrayListã¯LinkedListãããé«éã§çµæžçã§ãããããéåžžã¯ArrayListã䜿çšããŸãããLinkedListã®å Žåã¯åžžã«10ïŒ
ã®å ŽåããããŸãã åã®è³ªåã®ãã¹ããšæåŸã®æ®µèœãåç
§ããŠãéåžžArrayListã䜿çšãããšèšããŸãããLinkedListãå¿ããªãã§ãã ããïŒã©ã®ãããªå Žåã§ããïŒãŸããåã®è³ªåã®æåŸã®æ®µèœã圹ç«ã¡ãŸãïŒã
3. ArrayListãŸãã¯LinkedListãããé«éãªãã®ã¯äœã§ããïŒ
æåã®è³ªåã®å¥ã®å€è£
ããŒãžã§ã³ã äžèšã®ãªãã·ã§ã³ãããé£ããã®ã¯ã質åããããšã¯ææ¡ããããªãã·ã§ã³ã®ãããããéžæããåé³ç¯ã®çããæå³ããããšã§ãããç§ã¯çè§£ããŠããããã«ãã³ã¬ã¯ã·ã§ã³ã®æµ
ãç¥èãæã€äººãããã«ç¹å®ããå¿
èŠããããŸãã æ£ããã¢ã¯ã·ã§ã³ã¯ãæ§é äžã§å®è¡ãããã¢ã¯ã·ã§ã³ã®å察ã®è³ªåã«ãªããŸãã ãã®çµæããã€ã¢ãã°ã¯ã¹ã ãŒãºã«é²ã¿ãæåã®è³ªåã«çããŸãã
4. 100äžã远å ããå¿
èŠããããŸãã èŠçŽ ãã©ã®æ§é ã䜿çšããŠããŸããïŒ
ãŸããæåã®è³ªåã®éåžžã«äººæ°ã®ããé ãããããŒãžã§ã³ã ãŸããã¹ããŒãã¡ã³ãã«ã¯ææ¡ããããªãã·ã§ã³ã®1ã€ãéžæããããšãå«ãŸããŸãããå®éã«ã¯æç¢ºãªéžæã«é¢ããæ
å ±ã¯ãããŸããã 远å ã®è³ªåãããå¿
èŠããããŸãïŒãªã¹ãã®ã©ã®éšåã«ã¢ã€ãã ã远å ãããŸããïŒ ãªã¹ãé
ç®ã®æšªã«äœãèµ·ãããã«ã€ããŠã®æ
å ±ã¯ãããŸããïŒ ã¡ã¢ãªãŸãã¯å®è¡é床ã«å¶éã¯ãããŸããïŒ äžè¬ã«ãããã¯æåã®è³ªåãšåãã§ãããå°ãç°ãªãåŽé¢ããããŸãã远å ã®è³ªåãéããŠãé
åãšãªã³ã¯ãªã¹ãã®äœæ¥ã®çè§£ã®æ·±ãã瀺ããŸãã
ç§ããã®ããã¯ããã€ã€ããŠãããªã¹ãã®æåŸã«ãæ¿å
¥ãããŠArrayListãéäžçã«æšé²ããããšãèªåã«èããŠã¿ãŸãããããã®ãªã¹ãã§ã®ãããªãã¢ã¯ã·ã§ã³ãšå¯èœãªå¶éã«ã€ããŠã¯ç¥ããŸããã§ããïŒèŠã€ããããšããŸããã§ããïŒã
5. ArrayListããèŠçŽ ã¯ã©ã®ããã«åé€ãããŸããïŒ ãã®å ŽåãArrayListã®ãµã€ãºã¯ã©ã®ããã«å€ãããŸããïŒ
ç¹°ãè¿ããŸããã質å1ã®çãã«ã¯ããã®è³ªåã®çããå«ãŸããŠããŸãã ãªã¹ãããä»»æã®èŠçŽ ãåé€ãããšããå³ãã«ãããã¹ãŠã®èŠçŽ ã1ã»ã«å·Šã«ã·ãããããé
åã®å®éã®ãµã€ãºïŒå®¹éã容éïŒã¯ãŸã£ããå€åããŸããã é
åã®èªåãæ¡åŒµãã®ã¡ã«ããºã ããããŸãããèªåãå§çž®ãã¯ãããŸãããtrimToSizeïŒïŒã³ãã³ãã§æç€ºçã«ãå§çž®ããå®è¡ããããšããã§ããŸããã
6. ArrayListã«ãã£ãŠå®è£
ããããªã¹ãã®äžå€®ããããã€ãã®é£æ¥ããèŠçŽ ãåé€ããããã®å¹æçãªã¢ã«ãŽãªãºã ãææ¡ããŸãã
ç§ã®æšæºã§ã¯ãArrayListããèŠçŽ ãåé€ããã¡ã«ããºã ãããããªãã£ããšãã«äžåºŠã ãäŒã£ããéåãã®ãªã質åã§ãã ãã®çµæãããã¯ç§ã«æ·±å»ãªå°é£ãåŒãèµ·ãããŸããã å®éã1ã€ã®èŠçŽ ãã©ã®ããã«åé€ãããããç¥ã£ãŠããã°ããã¹ãŠãéåžžã«åçŽã§æçœã§ãã ãªã¹ãã®äœçœ®mããnåã®èŠçŽ ãåé€ãããšããŸãã 1ã€ã®èŠçŽ ãnååé€ãã代ããã«ïŒãªã¹ãã®ãå³ãã«ããèŠçŽ ã1ã€ãã€ã·ãããããã³ã«ïŒãn + mäœçœ®ã®ãå³ãã«ãããã¹ãŠã®èŠçŽ ããªã¹ãã®å·Šã«nèŠçŽ ã ãå·Šã«ã·ããããå¿
èŠããããŸãã ãããã£ãŠããªã¹ãé
ç®ã®ç§»åãnåç¹°ãè¿ã代ããã«ããã¹ãŠã1ãã¹ã§è¡ãããŸãã
7. HashMapã¯ã©ã®ããã«é
眮ãããŸããïŒ
ããã¯ãæã人æ°ã®ããã³ã¬ã¯ã·ã§ã³ã®è³ªåã®ãªã¹ãã®2çªç®ã§ãã ãã®è³ªåãç§ã«èãããªãå Žåããã£ããã©ããããèŠããŠããŸããã
èŠããã«ãHashMapã¯ããã¹ã±ãããã§æ§æãããŠããŸãã æè¡çãªèгç¹ããèŠããšãããã¹ã±ãããã¯èŠçŽ ã®ãªã¹ããžã®ãªã³ã¯ãæ ŒçŽããé
åèŠçŽ ã§ãã æ°ããããŒãšå€ã®ãã¢ã远å ãããšãããŒã®ããã·ã¥ã³ãŒããèšç®ãããããã«åºã¥ããŠãæ°ããèŠçŽ ãååŸããããã¹ã±ããçªå·ïŒé
åã®ã»ã«çªå·ïŒãèšç®ãããŸãã ãã¹ã±ããã空ã®å Žåãæ°ãã远å ãããèŠçŽ ãžã®ãªã³ã¯ããã®äžã«ä¿åãããæ¢ã«èŠçŽ ãååšããå Žåããªã³ã¯ã¯ãæ°ãã远å ãããèŠçŽ ãžã®ãªã³ã¯ãé
眮ãããæåŸã®èŠçŽ ãæ¢ããŠããã§ãŒã³å
ã®èŠçŽ éãé çªã«ãã©ããŸã ãªã¹ãå
ã§åãããŒãæã€ã¢ã€ãã ãèŠã€ãã£ãå Žåãããã¯çœ®ãæããããŸãã èŠçŽ ã®è¿œå ãæ€çŽ¢ãåé€ã¯äžå®ã®æéã§å®è¡ãããŸãã ãã¹ãŠãããŸãããããã«æããŸããã1ã€ã®æ³šæç¹ããããŸããããã·ã¥é¢æ°ã¯ããã¹ã±ããå
šäœã«èŠçŽ ãåçã«åæ£ããå¿
èŠããããŸãããã®å Žåããããã®3ã€ã®æäœã®æéã®è€éãã¯log Nããäœããªããå¹³åçãªå Žåã¯äžå®ã®æéã§ãã
äžè¬ã«ããã®çãã¯æèµ·ããã質åã«ã¯ååã§ãããããã»ã¹ãšç¹çްããæ·±ãçè§£ããäžã§ãHashMapãã€ã¢ãã°ãéå§ãããå¯èœæ§ãé«ãã§ãã
ç¹°ãè¿ããŸããã tarzan82ã®HashMapã®èšäºãèªãããšããå§ãããŸãã
8. HashMapå
ã®ãã¹ã±ããã®åææ°ã¯ããã€ã§ããïŒ
äºæ³å€ã®è³ªåã§ããã圌ã¯ãã€ãŠãããã©ã«ãã³ã³ã¹ãã©ã¯ã¿ãŒã䜿çšãããšãã«ãã¹ã±ããã®æ°ãæšæž¬ãããŸããã
ããã§ã®çãã¯16ã§ããçããšããŠããã©ã¡ãŒã¿ãŒãæã€ã³ã³ã¹ãã©ã¯ã¿ãŒã䜿çšããããšã¯å¯èœã§ãã容éãã©ã¡ãŒã¿ãŒã䜿çšããŠããã¹ã±ããã®åææ°ãèšå®ããŸãã
9. HashMapããã¢ã€ãã ãéžæããæéã®è€éãã®æšå®å€ã¯ã©ã®ãããã§ããïŒ HashMapã¯ãæå®ãããèŠçŽ ã®ååŸã®è€éããä¿èšŒããŸããïŒ
質åã®æåã®éšåã®çãã¯è³ªå7ã®çãã«ãããŸããèŠçŽ ãéžæããã«ã¯äžå®ã®æéãå¿
èŠã§ãã ããã§è³ªåã®2çªç®ã®éšåã§ãç§ã¯æè¿æ··ä¹±ããŸããã ãããŠãHashMapããã€ã¹ã¯ããã·ã¥é¢æ°ã«ã€ããŠãç¥ã£ãŠããŸãããããã®ãããªè³ªåã«å¯Ÿå¿ããæºåã¯ã§ããŠããŸããã§ãããäžè¬ã«ä»ã®æ¹åã«æ¥ããHashMapã®æ§é ã«éäžããããã·ã¥ã³ãŒãã®åé¡ãæšãŠãŸãããé
åžã å®éãçãã¯éåžžã«åçŽã§ããã質å7ã®åçããç¶ããŸãã
åžžã«åãå€ãè¿ãããã·ã¥é¢æ°ã䜿çšãããšãHashMapã¯äžå¿«ãªããã©ãŒãã³ã¹ã§ãªã³ã¯ãªã¹ãã«ãªããŸãã äžæ§ååžã®ããã·ã¥é¢æ°ã䜿çšããå Žåã§ããæ¥µç«¯ãªå Žåãlog Nã®æéã®è€éãã®ã¿ãä¿èšŒãããããã質åã®2çªç®ã®éšåã«å¯Ÿããçãã¯noã§ãããä¿èšŒãããŸããã
10. HashMapã§ã®equalsãšhashCodeã®åœ¹å²ã¯ïŒ
ãã®è³ªåãžã®åçã¯è³ªå7ãžã®åçããåŸãããŸãããæç¢ºã«èšè¿°ãããŠããŸããã hashCodeã䜿çšãããšããã¹ã±ãããå®çŸ©ããŠèŠçŽ ãæ€çŽ¢ã§ããequalsã䜿çšããŠããã¹ã±ããå
ã®ãªã¹ãå
ã®èŠçŽ ã®ããŒãšæ€çŽ¢ããããŒãæ¯èŒããŸãã
11. hashCodeïŒïŒå€ã®æå€§æ°ã¯ïŒ
ããã§ã¯ããã¹ãŠãéåžžã«åçŽã§ãã¡ãœããã®ã·ã°ããã£ãæãåºããŠãã ããïŒint hashCodeïŒïŒã ã€ãŸããå€ã®æ°ã¯intåã®ç¯å²-2 ^ 32ã«çãããªããŸãïŒæ£ç¢ºãªç¯å²ã¯å°ããããããã®ãããªçãã§ååã§ããïŒã
12. HashMapã®ãã¹ã±ããã®æ°ã¯ãã€ãã©ã®ããã«å¢å ããŸããïŒ
ããã¯éåžžã«åŸ®åŠãªè³ªåã§ãã ç§ã®ãã調æ»ã瀺ããããã«ãHashMapããã€ã¹ã®æ¬è³ªãå€ããå°ãªããæç¢ºã«çè§£ãããŠããå Žåããã®è³ªåã¯å¯Ÿè©±è
ããã°ãã°æ··ä¹±ãããŸããã
容éã«å ããŠãHashMapã«ã¯loadFactorãã©ã¡ãŒã¿ãŒããããããã«åºã¥ããŠããžãŒãã¹ã±ããã®æå€§æ°ãèšç®ãããŸãïŒcapacity * loadFactorïŒã ããã©ã«ãã§ã¯ãloadFactor = 0.75ã§ãã å¶éå€ã«éãããšããã¹ã±ããã®æ°ã2åã«å¢ããŸãã ä¿ç®¡ãããŠãããã¹ãŠã®ã¢ã€ãã ã«ã€ããŠãæ°ãããå Žæãã¯ããã¹ã±ããã®æ°ããæ°ãèæ
®ããŠèšç®ãããŸãã
13.ã©ã®ãããªå ŽåãHashMapã§èŠçŽ ã倱ãããŸããïŒ
ãã®è峿·±ã質åã¯ã LeoCcoderããéãããŠããŸããã圌ãã¯ãã®ãããªããšãèââããªãã£ãã®ã§ãããã«èªãã åŸãèŠçŽ ã倱ãããã®ã¹ã¯ãªãããæãä»ããªãã£ãããšãæ£çŽã«èªããŸãã ããã»ã©æç¢ºã§ã¯ãããŸãããããã¹ãŠãåã³éåžžã«åçŽã§ããããšã倿ããŸãããããšãã°ãããŒãããªããã£ãã§ã¯ãªããããã€ãã®ãã£ãŒã«ããæã€ãªããžã§ã¯ãã§ãããšããŸãããã HashMapã«èŠçŽ ã远å ãããšãããŒãšããŠæ©èœãããªããžã§ã¯ãã¯ãããã·ã¥ã³ãŒãã®èšç®ã«é¢ä¿ãã1ã€ã®ãã£ãŒã«ãã倿ŽããŸãã ãã®çµæããœãŒã¹ããŒã§ãã®èŠçŽ ãèŠã€ããããšãããšãæ£ãããã¹ã±ããã«ã¢ã¯ã»ã¹ããŸãããçããïŒçµå±ãçãããhashCodeã¯åããã£ãŒã«ãã»ããã§åäœããå¿
èŠããããŸãïŒèŠçŽ ã®ãªã¹ãã§æå®ãããããŒãèŠã€ããããŸããã ããã§ãããªããžã§ã¯ãã®æå®ããããã£ãŒã«ãã倿ŽããŠãçµæã«åœ±é¿ããªãããã«equalsãå®è£
ãããŠããå Žåã§ãããã¹ã±ããã®ãµã€ãºãå¢ãããŠèŠçŽ ã®ããã·ã¥ã³ãŒããåèšç®ããåŸã倿Žããããã£ãŒã«ãå€ãæã€æå®ãããèŠçŽ ã¯å®å
šã«ç°ãªããã¹ã±ããã«ãªããŸããããŠåœŒã¯å®å
šã«å€±ãããŸãã
14.ãã€ã[]ãHashMapã®ããŒãšããŠäœ¿çšã§ããªãã®ã¯ãªãã§ããïŒ
LeoCcoderããã®å¥ã®è³ªåã ãã€ãã®ããã«ããã¹ãŠãéåžžã«ã·ã³ãã«ã§ããããšã倿ããŸãã-é
åã®ããã·ã¥ã³ãŒãã¯ãæ ŒçŽãããŠããèŠçŽ ã«äŸåããŸããããé
åã®äœææã«å²ãåœãŠãããŸãïŒé
åã®ããã·ã¥ã³ãŒãã®èšç®æ¹æ³ã¯ãªãŒããŒã©ã€ãããããé
åã®ã¢ãã¬ã¹ã«åºã¥ããŠæšæºã®Object.hashCodeïŒïŒã䜿çšããŠèšç®ãããŸãïŒ ãŸããé
åã¯çå·ããªãŒããŒã©ã€ãããããã€ã³ã¿ãŒæ¯èŒãå®è¡ããŸãã ããã¯ãåããµã€ãºããã³åãèŠçŽ ã®å¥ã®é
åã䜿çšããå Žåãé
åããŒã§ä¿åãããèŠçŽ ã«ã¢ã¯ã»ã¹ã§ããªããšããäºå®ã«ã€ãªãããŸããã¢ã¯ã»ã¹ã¯1ã€ã®å Žåã«ã®ã¿å®è¡ã§ããŸã-ä¿åã«äœ¿çšããåãé
ååç
§ã䜿çšããå Žåã¢ã€ãã ã ãã®è³ªåã«å¯Ÿããåçã«ã€ããŠã¯ããŠãŒã¶ãŒ@dark_dimiusã«ç¹å¥ãªæè¬ãããŸãã
15. TreeSetãšHashSetã®éãã¯äœã§ããïŒ
ãŸããSetã¯ã»ããã§ãïŒãã»ããããšãåŒã°ããŸãïŒã ã»ããã§ã¯ã2ã€ã®åäžã®èŠçŽ ãä¿åã§ããŸããã æ£åŒã«èšãã°ãçšèªãmultitudeãã¯ç°ãªãèŠçŽ ã®éåãæå³ãããããç°ãªãèŠçŽ ã§ããããšã¯éåžžã«éèŠã§ããããã¯Setã®äž»èŠãªããããã£ã ããã§ãã ãã®å®çŸ©ãèãããšãåäžã®èŠçŽ ã®ä¿åã«é¢ãã説æã¯å¿
èŠãããŸããããæ¥åžžçæŽ»ã§ã¯ããã»ãããã®æŠå¿µã¯ããã«å«ãŸããèŠçŽ ã®äžææ§ã«é¢ããå³å¯ãªæå³ã倱ããŸãããããã«ãããããããã»ããã®ãã®ããããã£ãåå¥ã«æå®ããŸãã
TreeSetã¯ãèµ€é»æšã®åœ¢ã§èŠçŽ ã®èŠåæ£ããã¹ãã¬ãŒãžãæäŸããŸãã TreeSet lg Nã§åºæ¬æäœãå®è¡ããè€éããHashSetã¯HashMapãšåãæ¹æ³ã䜿çšããŠèŠçŽ ãæ ŒçŽããŸãããHashSetã§ããŒãšããŠæ©èœããç¹ãç°ãªããŸããããã«ãHashSetïŒHashMapãªã©ïŒã¯HashMapã®ãããªæäœã®äžæçãªè€éããæäŸããŸãã
16. TreeSetããã€ã¹ïŒ
ãã®è³ªåã¯è³ªå14ã®ä»£ããã«å°ããããããã§ã¯TreeSetãèµ€é»æšã«åºã¥ããŠãããšããããªãçãåçã瀺ããŸãã ååãšããŠãããã§ååã§ããã察話è
ã¯ããã«æ¬¡ã®è³ªåã«é²ã¿ãŸã;ããªãŒãŸãã¯ãã®å®è£
ã®ä»ã®è©³çްã®ãã©ã³ã¹ããšãã¡ã«ããºã ãå°ããããããšã¯ãããŸããã
èµ€ãšé»ã®æšã®ç¥èãæ·±ããããã«ã ãã®èšäºããå§ãããŸã ã
17. TreeSetã«ã¢ã€ãã ãæé ã§è¿œå ãããšã©ããªããŸããïŒ
éåžžã察話è
ã¯ãã®è³ªåã®åã«ãTreeSetããã€ããªããªãŒã«åºã¥ããŠãããšãããã¬ãŒãºã䜿çšããæé ã§èŠçŽ ã远å ããå ŽåãããªãŒå
šäœã«ã©ã®ããã«èŠçŽ ã忣ããããæå®ããŸãã
TreeSetããã€ã¹ã«ã€ããŠæ£ç¢ºãªèãããªãããããããã€ããªããªãŒã§ãããšããäžè¬çãªçè§£ãããå ŽåïŒå¯Ÿè©±è
ã¯ããã«ä¿èšŒããŸãïŒããã®è³ªåã¯è峿·±ãçµæã«ã€ãªããå¯èœæ§ããããŸãïŒéåžžã®ãã€ããªããªãŒã«è¿œå ããåŸããã¹ãŠã®èŠçŽ ã¯åããã©ã³ãã«ãªããŸãNèŠçŽ ã®é·ããããã¯ãããªãŒãªã©ã®æ§é ã®ãã¹ãŠã®å©ç¹ãç¡å¹ã«ããŸãïŒå®éã«ã¯ããªã¹ããååŸãããŸãïŒã å®éãäžã§è¿°ã¹ãããã«ãTreeSetã®åºç€ã¯ããèªäœã®ãã©ã³ã¹ãåãããšãã§ããèµ€é»æšã§ãã ãã®çµæãTreeSetã¯èŠçŽ ã远å ããé åºãæ°ã«ããŸããããã®ããŒã¿æ§é ã®å©ç¹ã¯ä¿æãããŸãã
ãããã«
è°è«ããã質åãhabrayuzerã«åœ¹ç«ã€ããšãé¡ã£ãŠããŸãã ãŸããäžèšã®è³ªåã«ã¯ãã®ãããªè©³çŽ°ãªæ€èšãå¿
èŠã§ãããšããçŽ æŽããèš±ããŠãã ããããããããããŠåæ§ã®èšäºãçå£ã«åœ¹ç«ã€ã§ãããã èšäºã«ã¯ééãããããšç¢ºä¿¡ããŠããŸã-ã³ã¡ã³ãããé¡ãããŸããããã«ãã³ã¡ã³ãã®çµéšè±å¯ãªä»²éãå®è·µããã®è³ªåãç©æ¥µçã«å
±æããèšäºãhabrasocietyã«å¥œæçã«åãåãããã°ãJavaã€ã³ã¿ãã¥ãŒã®æè¡çãªåé¡ã®ã¬ãã¥ãŒãç¶ããããšãã§ããããšãé¡ã£ãŠããŸãã
PSã¡ãã£ãšãã忥çé¢å¿ïŒæ°ããä»äºã®æ€çŽ¢ã¯ç¶ç¶ãããŸããããhabrayuzersã®1人ããéçºãè峿·±ãã¿ã¹ã¯ã«ææ°ã®ã¢ãããŒããããŠããäŒç€Ÿã§Javaéçºè
ãæ€çŽ¢ããŠããå ŽåããŸãã¯é©åãªç©ºåžã詳ãã調ã¹ãããšããå§ããããããããŸãã-æè¬ããŸãPMã