æè¿ãç§ã¯å°éèœåã®éçºãéåžžã«é
ããªã£ããšåºãæã£ãŠããŸããã ã¯ããæ¬ãèªãã§ãã³ãŒã¹ãèŽããŸãããåæã«ã転è·ã®æãæ¥ãŠãããããããªããšããç解ããããŸããããã§ãã¹ãŠãç 究ãããããã§ãåŸã
ã«ã«ãŒãã³ã«ç§»è¡ããŠããŸãã ãã®ã¢ã€ãã¢ã¯ãå±¥æŽæžãããã€ãã®äŒæ¥ãã€ãŸãåžå ŽãªãŒããŒã«éãããšãç§ã«ä¿ããŸããã ãã®ãã¡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ã