ã質å
1. Collectionã€ã³ã¿ãŒãã§ãŒã¹ãšã¯äœã§ããïŒ
çãCollectionã€ã³ã¿ãŒãã§ã€ã¹ã¯ããã¹ãŠã®ã·ãŒã±ã³ã·ã£ã«ã³ã³ããã®äžè¬çãªæ©èœïŒpã301ïŒãèšè¿°ããã«ãŒãã€ã³ã¿ãŒãã§ã€ã¹ã§ãã
2.ã³ã³ããã䜿çšããŠããªããã£ããä¿åã§ããŸããïŒ
çãããªããã£ãã¯ã³ã³ããã®èŠçŽ ãšããŠæ©èœã§ããŸããã ãªããžã§ã¯ããžã®åç
§ã®ã¿ãã³ã³ããã«é
眮ã§ããŸãã ãã ãããªãŒããã¯ã·ã³ã°ã¡ã«ããºã ã¯ãããªããã£ãããªããžã§ã¯ãã¿ã€ãã«èªåçã«å€æããŸãã ãããã£ãŠãããã°ã©ãã¯åè¿°ã®å¶éããå¿ãããããšãã§ããŸãã
ïŒ
MrDãšãšãã«
æäŸãããåç ïŒ
3.ã¢ã€ãã ãArrayListã³ã³ããã«è¿œå ããããã®å¥œãŸããæ¹æ³ã¯äœã§ããïŒ
Arrays.asListãŸãã¯Collections.addAllããã³ãã®çç±
çãCollections.addAllã¯ãããã©ãŒãã³ã¹ïŒpã282ïŒãé«ããããæšå¥šãããŸãã
4. ArrayListãæäœãããšãã«äœ¿çšã§ããããã€ãã®ã¡ãœããããªã¹ãããŸãã
çããå«ãïŒãªããžã§ã¯ãoïŒã-é
åå
ã®èŠçŽ ã®ååšã確èªããŸãã
"IndexOfïŒObject oïŒ"-èŠçŽ ã®ã€ã³ããã¯ã¹ãååŸããŸãã
ãSubListïŒindex1ãindex2ïŒã-èŠçŽ ã®äžéšãæ°ããã³ã³ããã«ã³ããŒããŸãã
ãContainsAllïŒObject [] oïŒã-ã³ã³ããå
ã®èŠçŽ ã®ååšã確èªããŸãã
5. Queueåã®ã³ã³ããã«å¯ŸããŠremoveïŒïŒã¡ãœããã¯äœãè¿ããŸããïŒ
çãQueue.removeïŒïŒã¡ãœããã¯ããã¥ãŒã®å
é èŠçŽ ãåé€ããã ãã§ãªãããã®æååå€ãè¿ããŸãã
6. LinkedListã䜿çšããå ŽåãArrayListãšæ¯èŒããŠé«éãªæäœã¯äœã§ããïŒ
çãLinkedListã䜿çšãããšããªã¹ãã®äžå€®ããã®èŠçŽ ã®æ¿å
¥ãšåé€ãé«éã«ãªããŸãïŒpã291ïŒã
7. LinkedListã䜿çšããŠã©ã®ãããªçš®é¡ã®ã³ã³ãããå®è£
ã§ããŸããïŒ
çãã¹ã¿ãã¯ããã¥ãŒãåæ¹åãã¥ãŒã
8. Setã³ã³ãããã¡ããªã¯ãListã³ã³ãããã¡ããªãšã©ã®ããã«ç°ãªããŸããïŒ ïŒç·šéããŠããã
MrDã«æè¬ïŒ
çãSetã³ã³ãããã¡ããªã§ã¯ãããŒã¿ã¯1ã€ã®ã€ã³ã¹ã¿ã³ã¹ã«ã®ã¿ä¿åã§ããŸãïŒpã294ïŒ
9. Setã«æ¢ã«å«ãŸããŠããèŠçŽ ãSetã«è¿œå ããããšãããšãäŸå€ãçºçããŸããïŒ
çãäŸå€ã¯çºçããŸããã
10. PriorityQueueã³ã³ããã¯ãã¥ãŒãšã©ãéãã®ã§ããïŒ
çãPriorityQueueã®èŠçŽ ã¯ãç¹å®ã®èŠåã«åŸã£ãŠäžŠã¹æ¿ããããšãã§ããŸãã
11. PriorityQueueã«ç³ã蟌ãå ŽåãComparatorã¯äœã«äœ¿çšãããŸããïŒ
çãã³ã³ãã¬ãŒã¿ã䜿çšãããšãPriorityQueueèŠçŽ ã®äžŠã¹æ¿ãèŠåãæå®ã§ããŸãã
12.ã³ã³ããã¿ã€ãã»ããïŒTreeSetãHashSetãLinkedHashSetïŒã®å Žåãæ¥é èŸãTreeãããã³ãHashãããLinkedHashãã¯ã©ãããæå³ã§ãã
çãæ¥é èŸãããªãŒãã¯ãã³ã³ããã®èŠçŽ ããœãŒããããé åºã§ä¿åãããããšãæå³ããŸãã
ïŒããšãã°ãã¢ã«ãã¡ãããé ãŸãã¯æé ïŒæ¥é èŸãããã·ã¥ãã¯ãã³ã³ãããããã·ã¥ãå®è£
ããŠéžæãé«éåããããšãæå³ããŸãã ãã¬ãã£ãã¯ã¹ãLinkedHashãã¯ãèŠçŽ ãæ¿å
¥é ã«ã³ã³ããã«ä¿åãããããšãæå³ããŸãããã¯ã€ãã¯ã¢ã¯ã»ã¹ïŒpã309ïŒãæäŸããŸã
13. Mapã³ã³ããã¯Iterableã€ã³ã¿ãŒãã§ã€ã¹ããµããŒãããŠããŸããïŒ
14. foreachæ§æã¯Mapã³ã³ããã§æ©èœããŸããïŒ
çãMapåã®ã³ã³ããã®å Žåãå埩å¯èœãªã€ã³ã¿ãŒãã§ã€ã¹ããµããŒãããŠããªããããforeachæ§æã¯æ©èœããŸããã
15.å埩åã䜿çšããŠã³ã³ããèŠçŽ ã«ã¢ã¯ã»ã¹ããäž»ãªå©ç¹ã¯äœã§ããïŒ
çãã€ãã¬ãŒã¿ã¯ãããŸããŸãªã¿ã€ãã®ã³ã³ããã«äœ¿çšã§ããŸãïŒpã290ïŒã
16.éåžžã®ã€ãã¬ãŒã¿ãŒãšæ¯èŒããŠãListIteratorã€ãã¬ãŒã¿ãŒã«ãã£ãŠæäŸãããæ°ããæ©èœã¯äœã§ããïŒ
çãListIteratorã¯ãã³ã³ããã®æåããæåŸãŸã§ã ãã§ãªãããã®éãåæ§ã«èŠçŽ ãžã®é 次ã¢ã¯ã»ã¹ãæäŸããŸãïŒpã290ïŒã
æŒç¿11. 1. Fruitã¯ã©ã¹ãäœæããŸãã ãã®ã¯ã©ã¹ã«ã¯ãint weightãã£ãŒã«ãããã®ãã£ãŒã«ããåæåããã³ã³ã¹ãã©ã¯ã¿ãŒãããã³weightå€ãåºåããprintWeightïŒïŒã¡ãœãããå«ãŸããŠããå¿
èŠããããŸãã
mainã¡ãœããã§ãããã€ãã®Fruitãªããžã§ã¯ããListã³ã³ããã«è¿œå ããŸãã æ¬¡ã®æ¹æ³ã§ãåãªããžã§ã¯ãã«å¯ŸããŠprintWeightïŒïŒãåŒã³åºããŸãã
AïŒgetïŒïŒã¡ãœããã䜿çšããŸãã
BïŒã€ãã¬ãŒã¿ã䜿çšããŸãã
11.2ã 11.1ã®Fruitã¯ã©ã¹ããããã³ã³ãããŒã«é
眮ããŸãã ããŒãšããŠææè
ã®ååããå€ãšããŠFruitã¿ã€ãã®ãªããžã§ã¯ãã瀺ããŸãã ããŒã§åFruitãªããžã§ã¯ããåæããèŠã€ãã£ããªããžã§ã¯ãã«å¯ŸããŠprintWeightïŒïŒã¡ãœãããåŒã³åºããŸãã ã€ãã¬ãŒã¿ã䜿çšããŸãã
çãã³ã³ãã¯ããªã€ãã¬ãŒã¿ãœãªã¥ãŒã·ã§ã³ã®
quarantinoã«æè¬ããŸãã
ãã«ãŒãã¯ã©ã¹-ã¿ã¹ã¯11.2ãåç
§
import java.util.*; import java.util.Map.Entry; public class Apply { public static void main(String[] args) {
11.3ã Comparator for PriorityQueueã䜿çšããŠãæåå倿°ããµã€ãºã§ãœãŒããããŠããããšã確èªããŸãã
çãæ³šïŒãã®äŸã¯ã€ã³ã¿ãŒãããããååŸãããã®ã§ãã
ãªãªãžãã«ã®æ¬ã®ç·Žç¿åé¡ã®ç¿»èš³ïŒ11.4ã int gerbilNumberãã£ãŒã«ããæã€æ°ããã¹ãããºãã¯ã©ã¹ãäœæããŸãã ãã£ãŒã«ããã³ã³ã¹ãã©ã¯ã¿ãŒã«ãã£ãŠåæåãããããã«ããŸãã ãŸããããããã³ã°ããŠããã¹ãããºãã®æ°ïŒããšgerbilNumber倿°ã®å€ãåºåããhopïŒïŒã¡ãœãããäœæããŸãã ArrayListã³ã³ããã«Gerbilãªããžã§ã¯ããé
眮ããŸãã getïŒïŒã¡ãœãããå®è£
ããŠããããã®ãªããžã§ã¯ãããšã«åŒã³åºãããhopïŒïŒã¡ãœããã§ãªã¹ããå埩åŠçããŸãã
11.5ã SimpleCollection.javaã倿ŽããŠãc倿°ã«Setã¡ãœããã䜿çšããŸãã innerclasses / Sequence.javaã倿ŽããŠãããã«ä»»æã®æ°ã®èŠçŽ ã远å ã§ããããã«ããŸãã
11.6ã ãæ°ã«å
¥ãã®æ ç»ã®ããŒããŒã®ååã®ãªã¹ãïŒStringåã®ãªããžã§ã¯ãïŒãå«ãGeneratorã¯ã©ã¹ãäœæããŸãã nextïŒïŒã¡ãœããã䜿çšããŠããã®ãªã¹ãã®åãªããžã§ã¯ããè¿ããŸãã äœæããããªã¹ãã®æåŸã«å°éãããããªã¹ãã®å
é ã«æ»ãå¿
èŠããããŸãã
Generatorã¯ã©ã¹ã䜿çšããŠãArrayListãLinkedListãHashSetãLinkedHashSetãTreeSetãªã©ã®ã³ã³ããã«ããŒã¿ãå
¥åããŸãã åé
åã®å
容ã衚瀺ããäžè¬çãªã¡ãœãããèšè¿°ããŸãã
11.7ã ListFeatures.javaã倿ŽããŠãPetåã®ãªããžã§ã¯ãã®ä»£ããã«Integeråã®ãªããžã§ã¯ãã䜿çšããããã«ããŸãã ãã®å€æŽã«ããããã©ãŒãã³ã¹ã®éãã説æããŸãã
11.8ã ListFeatures.javaã«ã€ããŠæŒç¿11.7ãç¹°ãè¿ããŸãããPetãStringsã«çœ®ãæããŸãã
11.9ã å¥ã®ã¯ã©ã¹ã®ãªããžã§ã¯ãã®åæåãããé
åãçæããã¯ã©ã¹ãäœæããŸãã ãã®é
åã䜿çšããŠãã¿ã€ãListã®ã³ã³ããã«å
¥åããŸãã ãªã¹ãã«subListïŒïŒã䜿çšããŠå¥ã®ã³ã³ãããäœæããŸãã æ¬¡ã«ãsubListïŒïŒã䜿çšããŠæœåºããã¢ã€ãã ããæœåºå
ã®ã³ã³ãããŒããåé€ããŸãã
11.10ã ããŸããŸãªã³ã³ãããšãã®ã¡ãœããã®äœ¿çšã«é¢ããéã³å¿ã®ããç·Žç¿ïŒç¬ç«ããŠçºæãããïŒ
æåã«ã飿ãããè¬ããã嚯楜ãã®3ã€ã®èŠçŽ ã§æ§æãããè²»çšã®ãªã¹ãããããšããŸãã ãããã®èŠçŽ ãListã³ã³ããã«æžã蟌ãå¿
èŠãããããããã®é åºã¯å€ãããªãã¯ãã§ãã
次ã«äœãèµ·ããŸãããïŒ1ïŒããŒã³ã®æ¯æãã³ã¹ãããªã¹ãã«è¿œå ããã®ãå¿ããŠããããšã«çªç¶æ°ä»ããŸããã ã¬ã³ãŒãã€ã³ããã¯ã¹ãçŽæ¥äœ¿çšããã«ããé£åããšãè¬ãã®éã«ãçšãã¬ã³ãŒããé
眮ããå¿
èŠããããŸãã
2ïŒåŠ»ã¯ããã³ãŒããããã¬ã¹ãã©ã³ãã®ãšã³ããªãå«ã远å ã®è²»çšãªã¹ããæã¡èŸŒã¿ãŸããã äœãããå¿
èŠã¯ãããŸããïŒãªã¹ãã®æåŸã«è²»çšã远å ããŸãïŒèªåãå¹³ãã«ããªãããïŒã
3ïŒãããã矩çã®æ¯ã¯ç§ãã¡ã«ããå°ããã€ã³ãããããããŸããïŒãåå Žãããå®¶ã®è£
食ãããè¬ãã ãã¶ããããªãã¯ãã§ã«ãããã®ãã€ã³ãã®ããã€ããæã£ãŠããã§ãããã 念ã®ãããæåã®ã³ã³ããã®å
容ãSetã¿ã€ãã®æ°ããã³ã³ããã«ã³ããŒãããããããã«ãããã®æµè¡ããªã¹ãã®æåŸã«è¿œå ããŸãã
4ïŒããããããšãªããè²»çšããã<StringãInteger>ã®é£æ³åçãªã¹ããäœæããŸããã
5ïŒãã¹ãŠã®ã³ã¹ãã30ïŒ
å¢ããããšã決å®ããŸããã ãããè¡ãã¡ãœãããäœæããŸãã
6ïŒãããŠïŒ ãå®¶ã®è£
食ãã§ååã§ãããããŠãããããã³ãŒãã£ã³ã°ããã®ã«æéãããããããŸãã ãããã®ã¢ã€ãã ãæ°ãããªã¹ãã«å
¥åããã¡ãœããã«æž¡ããŸãããã®ã·ãŒããèªã¿èŸŒããšããããã³ã³ãããŒã§å¯Ÿå¿ããçµè²»ã¢ã€ãã ãæ€çŽ¢ããã... 80ïŒ
åæžãããŸãã
7ïŒçŸ©æ¯ã®è²»çšã®äžéšãæšãŠãŸãããã ããã«ã圌女ã«é©ããäžããŸãïŒ éå§ã€ã³ããã¯ã¹ãšçµäºã€ã³ããã¯ã¹ã決å®ãã2ã€ã®ä¹±æ°ãçæãããããã®éã®ãã¹ãŠã®è²»çšã¯å¥ã®ãªã¹ãã«èšé²ãããŸãïŒãªã¹ãã¯åŸã§ã¹ãªãããããŸãïŒã 察å¿ããæ¯åºé
ç®ãæšãŠãŠãããããæŽæ°ããããšãå¿ããªãã§ãã ããã
8ïŒè²»çšã®æå°é¡ã決å®ããã¡ãœãããèšè¿°ãããããã®è²»çšã®ååãå°å·ããèªãããã«ãªã¹ããããã®ã¢ã€ãã ãåé€ããŸãã
9ïŒãããã远å ã®æ¶èåãç§ãã¡ãé§ãç«ãŠãŸãããå¥ã®é
åã®åœ¢ã§è£
食ããããé£ã¹ç©ããšãã¬ã¹ãã©ã³ãã§ãïŒ ãªã¹ãã«ãããã®ã¢ã€ãã ããããã©ããã確èªããŸããïŒ å°ãªããšã1ã€ã®è²»çšãããå Žåã¯ã決ããŠè¿œå ããŸããïŒ ãã®ããããååšããªãå ŽåïŒäœãå®è¡ã§ããªãïŒããããã®ãã€ã³ãã®äž¡æ¹ãäžåºŠã«è¿œå ããŸãïŒç§ã¯ç©ºè
¹ã§ãïŒïŒã
10ïŒç§ãã¡ã¯å€¢äžã§ãïŒ Map all Integerã®ãªã¹ãããæ®ãã®è²»çšã®åèšãèªã¿åããããããããããã³ã³ããã«æžã蟌ã¿ãæé ã§äžŠã¹æ¿ããæ¿æããŠããããæ··ããç¹å¥ãªã€ãã¬ãŒã¿ãå¿
æ»ã«äœ¿çšããŠéã®é åºã§ãã¹ã§åé€ããŸãã