¿´ÁËһЩËùν´ó¹«Ë¾µÄJavaÃæÊÔÎÊÌ⣬·¢ÏÖ¶ÔÓÚJAVA¼¯ºÏÀàµÄʹÓö¼±È½Ï¿´ÖØËƵ쬶ø×Ô¼ºÔÚÕâ·½Ãæ»¹ÕæµÄÊÇËùÕæÉõÉÙ£¬³é¿ÕҲѧϰѧϰ°É¡£
java.util°üÖоͰüº¬ÁËһϵÁÐÖØÒªµÄ¼¯ºÏÀ࣬¶ø¶ÔÓÚ¼¯ºÏÀ࣬Ö÷ÒªÐèÒªÕÆÎյľÍÊÇËüµÄÄÚ²¿½á¹¹£¬ÒÔ¼°±éÀú¼¯ºÏµÄµü´úģʽ¡£
½Ó¿Ú£ºCollection
ËùÓм¯ºÏÀàµÄ¸ùÀàÐÍ£¬Ö÷ÒªµÄÒ»¸ö½Ó¿Ú·½·¨£ºbooleanadd(Ojbectc)Ëä·µ»ØµÄÊÇboolean£¬µ«²»ÊDZíʾÌí¼Ó³É¹¦Óë·ñ£¬ÒòΪCollection¹æ¶¨£ºÒ»¸ö¼¯ºÏ¾Ü¾øÌí¼ÓÕâ¸öÔªËØ£¬ÎÞÂÛʲôÔÒò£¬¶¼±ØÐëÅ׳öÒì³££¬Õâ¸ö·µ»ØÖµ±íʾµÄÒâÒåÊÇadd()Ö´Ðк󣬼¯ºÏµÄÄÚÈÝÊÇ·ñ¸ÄÁË£¨¾ÍÊÇÔªËØÓÐÎÞÊýÁ¿¡¢Î»Öõȱ仯£©¡£ÀàËÆµÄaddAll£¬remove£¬removeAll£¬remainAllÒ²ÊÇÒ»ÑùµÄ¡£
ÓÃIteratorģʽʵÏÖ±éÀú¼¯ºÏ
CollectionÓÐÒ»¸öÖØÒªµÄ·½·¨£ºiterator()£¬·µ»ØÒ»¸öIterator£¨µü´ú×Ó£©£¬ÓÃÓÚ±éÀú¼¯ºÏµÄËùÓÐÔªËØ¡£Iteratorģʽ¿ÉÒÔ°Ñ·ÃÎÊÂß¼´Ó²»Í¬ÀàµÄ¼¯ºÏÀàÖгéÏó³öÀ´£¬´Ó¶ø±ÜÃâÏò¿Í»§¶Ë±©Â¶¼¯ºÏµÄÄÚ²¿½á¹¹¡£
for(Iteratorit=c.iterator();it.hasNext();){...}
²»ÐèҪά»¤±éÀú¼¯ºÏµÄ¡°Ö¸Õ롱£¬ËùÓеÄÄÚ²¿×´Ì¬¶¼ÓÐIteratorÀ´Î¬»¤£¬¶øÕâ¸öIteratorÓɼ¯ºÏÀàͨ¹ý¹¤³§·½·¨Éú³É¡£
ÿһÖÖ¼¯ºÏÀà·µ»ØµÄIterator¾ßÌåÀàÐÍ¿ÉÄܲ»Í¬£¬µ«ËüÃǶ¼ÊµÏÖÁËIterator½Ó¿Ú£¬Òò´Ë£¬ÎÒÃDz»ÐèÒª¹ØÐĵ½µ×ÊÇÄÄÖÖIterator£¬ËüÖ»ÐèÒª»ñµÃÕâ¸öIterator½Ó¿Ú¼´¿É£¬Õâ¾ÍÊǽӿڵĺô¦£¬ÃæÏò¶ÔÏóµÄÍþÁ¦¡£
Ҫȷ±£±éÀú¹ý³Ì˳ÀûÍê³É£¬±ØÐë±£Ö¤±éÀú¹ý³ÌÖв»¸ü¸Ä¼¯ºÏµÄÄÚÈÝ£¨IteratorµÄremove()·½·¨³ýÍ⣩£¬ËùÒÔ£¬È·±£±éÀú¿É¿¿µÄÔÔòÊÇ£ºÖ»ÔÚÒ»¸öÏß³ÌÖÐʹÓÃÕâ¸ö¼¯ºÏ£¬»òÕßÔÚ¶àÏß³ÌÖжԱéÀú´úÂë½øÐÐͬ²½¡£
JavaMap¼¯ºÏÀà½éÉÜ
Ö±½ÓÌùÁ´½ÓºÃÁË
¡¡¡¡CollectionÊÇ×î»ù±¾µÄ¼¯ºÏ½Ó¿Ú£¬Ò»¸öCollection´ú±íÒ»×éObject£¬¼´CollectionµÄÔªËØ£¨Elements£©¡£Ò»Ð©CollectionÔÊÐíÏàͬµÄÔªËØ¶øÁíһЩ²»ÐС£Ò»Ð©ÄÜÅÅÐò¶øÁíһЩ²»ÐС£javaSDK²»Ìṩֱ½Ó¼Ì³Ð×ÔCollectionµÄÀ࣬JavaSDKÌṩµÄÀà¶¼ÊǼ̳Ð×ÔCollectionµÄ¡°×Ó½Ó¿Ú¡±ÈçListºÍSet¡£ ¡¡¡¡ËùÓÐʵÏÖCollection½Ó¿ÚµÄÀà¶¼±ØÐëÌṩÁ½¸ö±ê×¼µÄ¹¹Ô캯Êý£ºÎÞ²ÎÊýµÄ¹¹Ô캯ÊýÓÃÓÚ´´½¨Ò»¸ö¿ÕµÄCollection£¬ÓÐÒ»¸öCollection²ÎÊýµÄ¹¹Ô캯ÊýÓÃÓÚ´´½¨Ò»¸öеÄCollection£¬Õâ¸öеÄCollectionÓë´«ÈëµÄCollectionÓÐÏàͬµÄÔªËØ¡£ºóÒ»¸ö¹¹Ô캯ÊýÔÊÐíÓû§¸´ÖÆÒ»¸öCollection¡£ ¡¡¡¡ÈçºÎ±éÀúCollectionÖеÄÿһ¸öÔªËØ£¿²»ÂÛCollectionµÄʵ¼ÊÀàÐÍÈçºÎ£¬Ëü¶¼Ö§³ÖÒ»¸öiterator()µÄ·½·¨£¬¸Ã·½·¨·µ»ØÒ»¸öµü´ú×Ó£¬Ê¹Óøõü´ú×Ó¼´¿ÉÖðÒ»·ÃÎÊCollectionÖÐÿһ¸öÔªËØ¡£µäÐ͵ÄÓ÷¨ÈçÏ£º ¡¡¡¡ ¡¡¡¡Iteratorit=collection.iterator();//»ñµÃÒ»¸öµü´ú×Ó ¡¡¡¡ ¡¡¡¡while(it.hasNext()){ ¡¡¡¡ ¡¡¡¡ ¡¡¡¡Objectobj=it.next();//µÃµ½ÏÂÒ»¸öÔªËØ ¡¡¡¡ ¡¡¡¡} ¡¡¡¡ÓÉCollection½Ó¿ÚÅÉÉúµÄÁ½¸ö½Ó¿ÚÊÇListºÍSet¡£
List½Ó¿Ú ¡¡¡¡ListÊÇÓÐÐòµÄCollection£¬Ê¹Óô˽ӿÚÄܹ»¾«È·µÄ¿ØÖÆÃ¿¸öÔªËØ²åÈëµÄλÖá£Óû§Äܹ»Ê¹ÓÃË÷Òý£¨ÔªËØÔÚListÖеÄλÖã¬ÀàËÆÓÚÊý×éϱ꣩À´·ÃÎÊListÖеÄÔªËØ£¬ÕâÀàËÆÓÚJavaµÄÊý×é¡£ºÍÏÂÃæÒªÌáµ½µÄSet²»Í¬£¬ListÔÊÐíÓÐÏàͬµÄÔªËØ¡£ ¡¡¡¡³ýÁ˾ßÓÐCollection½Ó¿Ú±Ø±¸µÄiterator()·½·¨Í⣬List»¹Ìṩһ¸ölistIterator()·½·¨£¬·µ»ØÒ»¸öListIterator½Ó¿Ú£¬ºÍ±ê×¼µÄIterator½Ó¿ÚÏà±È£¬ListIterator¶àÁËһЩadd()Ö®ÀàµÄ·½·¨£¬ÔÊÐíÌí¼Ó£¬É¾³ý£¬Éè¶¨ÔªËØ£¬»¹ÄÜÏòǰ»òÏòºó±éÀú¡£ ¡¡¡¡ÊµÏÖList½Ó¿ÚµÄ³£ÓÃÀàÓÐLinkedList£¬ArrayList£¬VectorºÍStack¡£
LinkedListÀà ¡¡¡¡LinkedListʵÏÖÁËList½Ó¿Ú£¬ÔÊÐínullÔªËØ¡£´ËÍâLinkedListÌṩ¶îÍâµÄget£¬remove£¬insert·½·¨ÔÚLinkedListµÄÊײ¿»òβ²¿¡£ÕâЩ²Ù×÷ʹLinkedList¿É±»ÓÃ×÷¶ÑÕ»£¨stack£©£¬¶ÓÁУ¨queue£©»òË«Ïò¶ÓÁУ¨deque£©¡£ ¡¡¡¡×¢ÒâLinkedListûÓÐͬ²½·½·¨¡£Èç¹û¶à¸öÏß³Ìͬʱ·ÃÎÊÒ»¸öList£¬Ôò±ØÐë×Ô¼ºÊµÏÖ·ÃÎÊͬ²½¡£Ò»ÖÖ½â¾ö·½·¨ÊÇÔÚ´´½¨Listʱ¹¹ÔìÒ»¸öͬ²½µÄList£º ¡¡¡¡ ¡¡¡¡Listlist=Collections.synchronizedList(newLinkedList(...));
ArrayListÀà ¡¡¡¡ArrayListʵÏÖÁ˿ɱä´óСµÄÊý×é¡£ËüÔÊÐíËùÓÐÔªËØ£¬°üÀ¨null¡£ArrayListûÓÐͬ²½¡£size£¬isEmpty£¬get£¬set·½·¨ÔËÐÐʱ¼äΪ³£Êý¡£µ«ÊÇadd·½·¨¿ªÏúΪ·Ö̯µÄ³£Êý£¬Ìí¼Ón¸öÔªËØÐèÒªO(n)µÄʱ¼ä¡£ÆäËûµÄ·½·¨ÔËÐÐʱ¼äΪÏßÐÔ¡£ ¡¡¡¡Ã¿¸öArrayListʵÀý¶¼ÓÐÒ»¸öÈÝÁ¿£¨Capacity£©£¬¼´ÓÃÓÚ´æ´¢ÔªËØµÄÊý×éµÄ´óС¡£Õâ¸öÈÝÁ¿¿ÉËæ×Ų»¶ÏÌí¼ÓÐÂÔªËØ¶ø×Ô¶¯Ôö¼Ó£¬µ«ÊÇÔö³¤Ëã·¨²¢Ã»Óж¨Òå¡£µ±ÐèÒª²åÈë´óÁ¿ÔªËØÊ±£¬ÔÚ²åÈëǰ¿ÉÒÔµ÷ÓÃensureCapacity·½·¨À´Ôö¼ÓArrayListµÄÈÝÁ¿ÒÔÌá¸ß²åÈëЧÂÊ¡£ ¡¡¡¡ºÍLinkedListÒ»Ñù£¬ArrayListÒ²ÊÇ·Çͬ²½µÄ£¨unsynchronized£©¡£
VectorÀà ¡¡¡¡Vector·Ç³£ÀàËÆArrayList£¬µ«ÊÇVectorÊÇͬ²½µÄ¡£ÓÉVector´´½¨µÄIterator£¬ËäÈ»ºÍArrayList´´½¨µÄIteratorÊÇͬһ½Ó¿Ú£¬µ«ÊÇ£¬ÒòΪVectorÊÇͬ²½µÄ£¬µ±Ò»¸öIterator±»´´½¨¶øÇÒÕýÔÚ±»Ê¹Óã¬ÁíÒ»¸öÏ̸߳ıäÁËVectorµÄ״̬£¨ÀýÈ磬Ìí¼Ó»òɾ³ýÁËÒ»Ð©ÔªËØ£©£¬Õâʱµ÷ÓÃIteratorµÄ·½·¨Ê±½«Å׳öConcurrentModificationException£¬Òò´Ë±ØÐë²¶»ñ¸ÃÒì³£¡£
StackÀà ¡¡¡¡Stack¼Ì³Ð×ÔVector£¬ÊµÏÖÒ»¸öºó½øÏȳöµÄ¶ÑÕ»¡£StackÌṩ5¸ö¶îÍâµÄ·½·¨Ê¹µÃVectorµÃÒÔ±»µ±×÷¶ÑջʹÓ᣻ù±¾µÄpushºÍpop·½·¨£¬»¹ÓÐpeek·½·¨µÃµ½Õ»¶¥µÄÔªËØ£¬empty·½·¨²âÊÔ¶ÑÕ»ÊÇ·ñΪ¿Õ£¬search·½·¨¼ì²âÒ»¸öÔªËØÔÚ¶ÑÕ»ÖеÄλÖá£Stack¸Õ´´½¨ºóÊÇ¿ÕÕ»¡£
Set½Ó¿Ú ¡¡¡¡SetÊÇÒ»ÖÖ²»°üº¬Öظ´µÄÔªËØµÄCollection£¬¼´ÈÎÒâµÄÁ½¸öÔªËØe1ºÍe2¶¼ÓÐe1.equals(e2)=false£¬Set×î¶àÓÐÒ»¸önullÔªËØ¡£ ¡¡¡¡ºÜÃ÷ÏÔ£¬SetµÄ¹¹Ô캯ÊýÓÐÒ»¸öÔ¼ÊøÌõ¼þ£¬´«ÈëµÄCollection²ÎÊý²»Äܰüº¬Öظ´µÄÔªËØ¡£ ¡¡¡¡Çë×¢Ò⣺±ØÐëСÐIJÙ×÷¿É±ä¶ÔÏó£¨MutableObject£©¡£Èç¹ûÒ»¸öSetÖеĿɱäÔªËØ¸Ä±äÁË×ÔÉí״̬µ¼ÖÂObject.equals(Object)=true½«µ¼ÖÂһЩÎÊÌâ¡£
Map½Ó¿Ú ¡¡¡¡Çë×¢Ò⣬MapûÓм̳ÐCollection½Ó¿Ú£¬MapÌṩkeyµ½valueµÄÓ³Éä¡£Ò»¸öMapÖв»Äܰüº¬ÏàͬµÄkey£¬Ã¿¸ökeyÖ»ÄÜÓ³ÉäÒ»¸övalue¡£Map½Ó¿ÚÌṩ3ÖÖ¼¯ºÏµÄÊÓͼ£¬MapµÄÄÚÈÝ¿ÉÒÔ±»µ±×÷Ò»×ékey¼¯ºÏ£¬Ò»×évalue¼¯ºÏ£¬»òÕßÒ»×ékey-valueÓ³Éä¡£
HashtableÀà ¡¡¡¡Hashtable¼Ì³ÐMap½Ó¿Ú£¬ÊµÏÖÒ»¸ökey-valueÓ³ÉäµÄ¹þÏ£±í¡£Èκηǿգ¨non-null£©µÄ¶ÔÏ󶼿É×÷Ϊkey»òÕßvalue¡£ ¡¡¡¡Ìí¼ÓÊý¾ÝʹÓÃput(key,value)£¬È¡³öÊý¾ÝʹÓÃget(key)£¬ÕâÁ½¸ö»ù±¾²Ù×÷µÄʱ¼ä¿ªÏúΪ³£Êý¡£Hashtableͨ¹ýinitialcapacityºÍloadfactorÁ½¸ö²ÎÊýµ÷ÕûÐÔÄÜ¡£Í¨³£È±Ê¡µÄloadfactor0.75½ÏºÃµØÊµÏÖÁËʱ¼äºÍ¿Õ¼äµÄ¾ùºâ¡£Ôö´óloadfactor¿ÉÒÔ½ÚÊ¡¿Õ¼äµ«ÏàÓ¦µÄ²éÕÒʱ¼ä½«Ôö´ó£¬Õâ»áÓ°ÏìÏñgetºÍputÕâÑùµÄ²Ù×÷¡£Ê¹ÓÃHashtableµÄ¼òµ¥Ê¾ÀýÈçÏ£¬½«1£¬2£¬3·Åµ½HashtableÖУ¬ËûÃǵÄkey·Ö±ðÊÇ¡±one¡±£¬¡±two¡±£¬¡±three¡±£º ¡¡¡¡ ¡¡¡¡Hashtablenumbers=newHashtable(); ¡¡¡¡ ¡¡¡¡numbers.put(¡°one¡±,newInteger(1)); ¡¡¡¡ ¡¡¡¡numbers.put(¡°two¡±,newInteger(2)); ¡¡¡¡ ¡¡¡¡numbers.put(¡°three¡±,newInteger(3)); ¡¡¡¡ÒªÈ¡³öÒ»¸öÊý£¬±ÈÈç2£¬ÓÃÏàÓ¦µÄkey£º ¡¡¡¡ ¡¡¡¡Integern=(Integer)numbers.get(¡°two¡±); ¡¡¡¡ ¡¡¡¡System.out.println(¡°two=¡±+n); ¡¡¡¡ÓÉÓÚ×÷ΪkeyµÄ¶ÔÏó½«Í¨¹ý¼ÆËãÆäÉ¢Áк¯ÊýÀ´È·¶¨ÓëÖ®¶ÔÓ¦µÄvalueµÄλÖã¬Òò´ËÈκÎ×÷ΪkeyµÄ¶ÔÏó¶¼±ØÐëʵÏÖhashCodeºÍequals·½·¨¡£hashCodeºÍequals·½·¨¼Ì³Ð×Ô¸ùÀàObject£¬Èç¹ûÄãÓÃ×Ô¶¨ÒåµÄÀ൱×÷keyµÄ»°£¬ÒªÏ൱СÐÄ£¬°´ÕÕÉ¢Áк¯ÊýµÄ¶¨Ò壬Èç¹ûÁ½¸ö¶ÔÏóÏàͬ£¬¼´obj1.equals(obj2)=true£¬ÔòËüÃǵÄhashCode±ØÐëÏàͬ£¬µ«Èç¹ûÁ½¸ö¶ÔÏó²»Í¬£¬ÔòËüÃǵÄhashCode²»Ò»¶¨²»Í¬£¬Èç¹ûÁ½¸ö²»Í¬¶ÔÏóµÄhashCodeÏàͬ£¬ÕâÖÖÏÖÏó³ÆÎª³åÍ»£¬³åÍ»»áµ¼Ö²Ù×÷¹þÏ£±íµÄʱ¼ä¿ªÏúÔö´ó£¬ËùÒÔ¾¡Á¿¶¨ÒåºÃµÄhashCode()·½·¨£¬Äܼӿì¹þÏ£±íµÄ²Ù×÷¡£ ¡¡¡¡Èç¹ûÏàͬµÄ¶ÔÏóÓв»Í¬µÄhashCode£¬¶Ô¹þÏ£±íµÄ²Ù×÷»á³öÏÖÒâÏë²»µ½µÄ½á¹û£¨ÆÚ´ýµÄget·½·¨·µ»Ønull£©£¬Òª±ÜÃâÕâÖÖÎÊÌ⣬ֻÐèÒªÀμÇÒ»Ìõ£ºÒªÍ¬Ê±¸´Ð´equals·½·¨ºÍhashCode·½·¨£¬¶ø²»ÒªÖ»Ð´ÆäÖÐÒ»¸ö¡£ ¡¡¡¡HashtableÊÇͬ²½µÄ¡£
HashMapÀà ¡¡¡¡HashMapºÍHashtableÀàËÆ£¬²»Í¬Ö®´¦ÔÚÓÚHashMapÊÇ·Çͬ²½µÄ£¬²¢ÇÒÔÊÐínull£¬¼´nullvalueºÍnullkey¡££¬µ«Êǽ«HashMapÊÓΪCollectionʱ£¨values()·½·¨¿É·µ»ØCollection£©£¬Æäµü´ú×Ó²Ù×÷ʱ¼ä¿ªÏúºÍHashMapµÄÈÝÁ¿³É±ÈÀý¡£Òò´Ë£¬Èç¹ûµü´ú²Ù×÷µÄÐÔÄÜÏàµ±ÖØÒªµÄ»°£¬²»Òª½«HashMapµÄ³õʼ»¯ÈÝÁ¿ÉèµÃ¹ý¸ß£¬»òÕßloadfactor¹ýµÍ¡£
WeakHashMapÀà ¡¡¡¡WeakHashMapÊÇÒ»ÖָĽøµÄHashMap£¬Ëü¶ÔkeyʵÐС°ÈõÒýÓá±£¬Èç¹ûÒ»¸ökey²»ÔÙ±»ÍⲿËùÒýÓã¬ÄÇô¸Ãkey¿ÉÒÔ±»GC»ØÊÕ¡£
×Ü½á ¡¡¡¡Èç¹ûÉæ¼°µ½¶ÑÕ»£¬¶ÓÁеȲÙ×÷£¬Ó¦¸Ã¿¼ÂÇÓÃList£¬¶ÔÓÚÐèÒª¿ìËÙ²åÈ룬ɾ³ýÔªËØ£¬Ó¦¸ÃʹÓÃLinkedList£¬Èç¹ûÐèÒª¿ìËÙËæ»ú·ÃÎÊÔªËØ£¬Ó¦¸ÃʹÓÃArrayList¡£ ¡¡¡¡Èç¹û³ÌÐòÔÚµ¥Ï̻߳·¾³ÖУ¬»òÕß·ÃÎʽö½öÔÚÒ»¸öÏß³ÌÖнøÐУ¬¿¼ÂÇ·Çͬ²½µÄÀ࣬ÆäЧÂʽϸߣ¬Èç¹û¶à¸öÏ߳̿ÉÄÜͬʱ²Ù×÷Ò»¸öÀ࣬Ӧ¸ÃʹÓÃͬ²½µÄÀà¡£ ¡¡¡¡ÒªÌرð×¢Òâ¶Ô¹þÏ£±íµÄ²Ù×÷£¬×÷ΪkeyµÄ¶ÔÏóÒªÕýÈ·¸´Ð´equalsºÍhashCode·½·¨¡£ ¡¡¡¡¾¡Á¿·µ»Ø½Ó¿Ú¶ø·Çʵ¼ÊµÄÀàÐÍ£¬Èç·µ»ØList¶ø·ÇArrayList£¬ÕâÑùÈç¹ûÒÔºóÐèÒª½«ArrayList»»³ÉLinkedListʱ£¬¿Í»§¶Ë´úÂë²»Óøı䡣Õâ¾ÍÊÇÕë¶Ô³éÏó±à³Ì¡£
?END?
¸ü¶à¾«²ÊÄÚÈÝɨһɨ北京看白癜风疗效好专ç§?天津最好的白癜风医é™?
×ªÔØÇë×¢Ã÷£ºhttp://www.92nongye.com/gaishu/gaishu/204618795.html