ÓÑÇéÌáʾ£ºÈç¹û±¾ÍøÒ³´ò¿ªÌ«Âý»òÏÔʾ²»ÍêÕû£¬Çë³¢ÊÔÊó±êÓÒ¼ü¡°Ë¢Ð¡±±¾ÍøÒ³£¡
Java±à³Ì˼ÏëµÚ4°æ[ÖÐÎÄ°æ](PDF¸ñʽ)-µÚ64²¿·Ö
¿ì½Ý²Ù×÷: °´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ °´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ °´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿! Èç¹û±¾ÊéûÓÐÔĶÁÍ꣬ÏëÏ´μÌÐø½Ó×ÅÔĶÁ£¬¿ÉʹÓÃÉÏ·½ "Êղص½ÎÒµÄä¯ÀÀÆ÷" ¹¦ÄÜ ºÍ "¼ÓÈëÊéÇ©" ¹¦ÄÜ£¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡///£º~¡¡¡¡
¡¡¡¡
ÓÉÓÚMap¡¡µÄ´óСÊÇ×îÑÏÖصÄÎÊÌ⣬ËùÒÔ³ÌÐòµÄ¼Æʱ²âÊÔ°´Map¡¡µÄ´óС£¨»òÈÝÁ¿£©À´·Ö¸îʱ¼ä£¬ÒÔ±ãµÃµ½ÁîÈË¡¡
ÐÅ·þµÄ²âÊÔ½á¹û¡£ÏÂÃæÁгöһϵÁнá¹û£¨ÔÚÄãµÄ»úÆ÷ÉÏ¿ÉÄܲ»Í¬£©£º¡¡¡¡
¡¡¡¡
ÀàÐÍ¡¡²âÊÔ´óС¡¡ÖÃÈë¡¡È¡³ö¡¡·´¸´¡¡¡¡
¡¡¡¡
T¡¡y¡¡p¡¡e¡¡¡¡¡¡¡¡¡¡T¡¡e¡¡s¡¡t¡¡¡¡¡¡Put¡¡¡¡¡¡Get¡¡¡¡¡¡¡¡¡¡Iteration¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡s¡¡i¡¡z¡¡e¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡10¡¡¡¡¡¡¡¡¡¡¡¡¡¡11¡£0¡¡¡¡¡¡5¡£0¡¡¡¡¡¡¡¡¡¡¡¡44¡£0¡¡¡¡
Hashtable¡¡100¡¡¡¡¡¡¡¡¡¡¡¡¡¡7¡£7¡¡¡¡¡¡¡¡¡¡7¡£7¡¡¡¡¡¡¡¡¡¡16¡£5¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡1000¡¡¡¡¡¡¡¡¡¡8¡£0¡¡¡¡¡¡¡¡¡¡8¡£0¡¡¡¡¡¡¡¡¡¡14¡£4¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡10¡¡¡¡¡¡¡¡¡¡¡¡¡¡16¡£0¡¡¡¡¡¡11¡£0¡¡¡¡¡¡22¡£0¡¡¡¡
TreeMap¡¡¡¡100¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡25¡£8¡¡¡¡¡¡15¡£4¡¡¡¡¡¡13¡£2¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡1000¡¡¡¡¡¡¡¡¡¡33¡£8¡¡¡¡¡¡20¡£9¡¡¡¡¡¡13¡£6¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡10¡¡¡¡¡¡¡¡¡¡¡¡¡¡11¡£0¡¡¡¡¡¡6¡£0¡¡¡¡¡¡¡¡¡¡¡¡33¡£0¡¡¡¡
HashMap¡¡¡¡100¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡8¡£2¡¡¡¡¡¡¡¡¡¡7¡£7¡¡¡¡¡¡¡¡¡¡13¡£7¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡1000¡¡¡¡¡¡¡¡¡¡8¡£0¡¡¡¡¡¡¡¡¡¡7¡£8¡¡¡¡¡¡¡¡¡¡11¡£9¡¡¡¡
¡¡¡¡
¡¡¡¡
¼´Ê¹´óСΪ¡¡10£¬ArrayMap¡¡µÄÐÔÄÜÒ²Òª±ÈHashMap¡¡²î¡ª¡ª³ý·´¸´Ñ»·Ê±ÒÔÍâ¡£¶øÔÚʹÓÃMap¡¡Ê±£¬·´¸´µÄ×÷ÓÃͨ¡¡
³£²¢²»ÖØÒª£¨get£¨£©Í¨³£ÊÇÎÒÃÇʱ¼ä»¨µÃ×î¶àµÄµØ·½£©¡£TreeMap¡¡ÌṩÁ˳öÉ«µÄ¡¡put£¨£©ÒÔ¼°·´¸´Ê±¼ä£¬µ«¡¡get£¨£©¡¡
µÄÐÔÄܲ¢²»¼Ñ¡£µ«ÊÇ£¬ÎÒÃÇΪʲôÈÔÈ»ÐèҪʹÓÃTreeMap¡¡ÄØ£¿ÕâÑùÒ»À´£¬ÎÒÃÇ¿ÉÒÔ²»°ÑËü×÷ΪMap¡¡Ê¹Ó㬶ø¡¡
×÷Ϊ´´½¨Ë³ÐòÁбíµÄÒ»ÖÖ;¾¶¡£Ê÷µÄ±¾ÖÊÔÚÓÚËü×ÜÊÇ˳ÐòÅÅÁеģ¬²»±ØÌرð½øÐÐÅÅÐò£¨ËüµÄÅÅÐò·½Ê½ÂíÉϾ͡¡
Òª½²µ½£©¡£Ò»µ©Ìî³äÁËÒ»¸öTreeMap£¬¾Í¿ÉÒÔµ÷ÓÃkeySet£¨£©À´»ñµÃ¼üµÄÒ»¸öSet¡¡¡°¾°Ï󡱡£È»ºóÓÃtoArray£¨£©¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡252¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡254¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
²úÉú°üº¬ÁËÄÇЩ¼üµÄÒ»¸öÊý×é¡£Ëæºó£¬¿ÉÓá¡static¡¡·½·¨Array¡£binarySearch£¨£©¿ìËÙ²éÕÒÅźÃÐòµÄÊý×éÖеġ¡
ÄÚÈÝ¡£µ±È»£¬Ò²ÐíÖ»ÓÐÔÚHashMap¡¡µÄÐÐΪ²»¿É½ÓÊܵÄʱºò£¬²ÅÐèÒª²ÉÓÃÕâÖÖ×ö·¨¡£ÒòΪHashMap¡¡µÄÉè¼Æ×ÚÖ¼¡¡
¾ÍÊǽøÐпìËٵļìË÷²Ù×÷¡£×îºó£¬µ±ÎÒÃÇʹÓá¡Map¡¡Ê±£¬Ê×ÒªµÄÑ¡ÔñÓ¦¸ÃÊÇ¡¡HashMap¡£Ö»ÓÐÔÚ¼«ÉÙÊýÇé¿öϲš¡
ÐèÒª¿¼ÂÇÆäËû·½·¨¡£¡¡¡¡
´ËÍ⣬ÔÚÉÏÃæÄÇÕűíÀÓÐÁíÒ»¸öÐÔÄÜÎÊÌâûÓз´Ó³³öÀ´¡£ÏÂÊö³ÌÐòÓÃÓÚ²âÊÔ²»Í¬ÀàÐÍMap¡¡µÄ´´½¨Ëٶȣº¡¡¡¡
¡¡¡¡
//£º¡¡MapCreation¡£java¡¡¡¡
//¡¡Demonstrates¡¡time¡¡differences¡¡in¡¡Map¡¡creation¡¡¡¡
package¡¡c08¡£newcollections£»¡¡¡¡
import¡¡java¡£util¡£*£»¡¡¡¡
¡¡¡¡
public¡¡class¡¡MapCreation¡¡£û¡¡¡¡
¡¡¡¡public¡¡static¡¡void¡¡main£¨String£§£§¡¡args£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡final¡¡long¡¡REPS¡¡=¡¡100000£»¡¡¡¡
¡¡¡¡¡¡¡¡long¡¡t1¡¡=¡¡System¡£currentTimeMillis£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£print£¨¡¨Hashtable¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡for£¨long¡¡i¡¡=¡¡0£»¡¡i¡¡¡¶¡¡REPS£»¡¡i£«£«£©¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡new¡¡Hashtable£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡long¡¡t2¡¡=¡¡System¡£currentTimeMillis£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨£º¡¡¡¨¡¡£«¡¡£¨t2¡¡t1£©£©£»¡¡¡¡
¡¡¡¡¡¡¡¡t1¡¡=¡¡System¡£currentTimeMillis£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£print£¨¡¨TreeMap¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡for£¨long¡¡i¡¡=¡¡0£»¡¡i¡¡¡¶¡¡REPS£»¡¡i£«£«£©¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡new¡¡TreeMap£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡t2¡¡=¡¡System¡£currentTimeMillis£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨£º¡¡¡¨¡¡£«¡¡£¨t2¡¡t1£©£©£»¡¡¡¡
¡¡¡¡¡¡¡¡t1¡¡=¡¡System¡£currentTimeMillis£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£print£¨¡¨HashMap¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡for£¨long¡¡i¡¡=¡¡0£»¡¡i¡¡¡¶¡¡REPS£»¡¡i£«£«£©¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡new¡¡HashMap£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡t2¡¡=¡¡System¡£currentTimeMillis£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨£º¡¡¡¨¡¡£«¡¡£¨t2¡¡t1£©£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡///£º~¡¡¡¡
¡¡¡¡
ÔÚдÕâ¸ö³ÌÐòÆڼ䣬TreeMap¡¡µÄ´´½¨ËٶȱÈÆäËûÁ½ÖÖÀàÐÍÃ÷ÏÔ¿ìµÃ¶à£¨µ«ÄãÓ¦Ç××Ô³¢ÊÔһϣ¬ÒòΪ¾Ý˵а桡
±¾¿ÉÄÜ»á¸ÄÉÆArrayMap¡¡µÄÐÔÄÜ£©¡£¿¼Âǵ½Õâ·½ÃæµÄÔÒò£¬Í¬Ê±ÓÉÓÚÇ°ÊöTreeMap¡¡³öÉ«µÄput£¨£©ÐÔÄÜ£¬ËùÒÔÈç¡¡
¹ûÐèÒª´´½¨´óÁ¿Map£¬¶øÇÒÖ»ÓÐÔÚÒÔºó²ÅÐèÒªÉæ¼°´óÁ¿¼ìË÷²Ù×÷£¬ÄÇô×î¼ÑµÄ²ßÂÔ¾ÍÊÇ£º´´½¨ºÍÌî³ä¡¡
TreeMap£»ÒÔºó¼ìË÷Á¿Ôö´óµÄʱºò£¬ÔÙ½«ÖØÒªµÄTreeMap¡¡×ª»»³ÉHashMap¡ª¡ªÊ¹ÓÃHashMap£¨Map£©¹¹½¨Æ÷¡£Í¬Ñù¡¡
µØ£¬Ö»ÓÐÔÚÊÂʵ֤Ã÷ȷʵ´æÔÚÐÔÄÜÆ¿¾±ºó£¬²ÅÓ¦¹ØÐÄÕâЩ·½ÃæµÄÎÊÌ⡪¡ªÏÈÓÃÆðÀ´£¬ÔÙ¸ù¾ÝÐèÒª¼Ó¿ìËٶȡ£¡¡¡¡
8¡£7¡£6¡¡¡¡Î´Ö§³ÖµÄ²Ù×÷¡¡¡¡
ÀûÓá¡static¡¡£¨¾²Ì¬£©Êý×éArrays¡£toList£¨£©£¬Ò²ÐíÄܽ«Ò»¸öÊý×éת»»³ÉList£¬ÈçÏÂËùʾ£º¡¡¡¡
¡¡¡¡
//£º¡¡Unsupported¡£java¡¡¡¡
//¡¡Sometimes¡¡methods¡¡defined¡¡in¡¡the¡¡Collection¡¡¡¡
//¡¡interfaces¡¡don't¡¡work£¡¡¡¡¡
package¡¡c08¡£newcollections£»¡¡¡¡
import¡¡java¡£util¡£*£»¡¡¡¡
¡¡¡¡
public¡¡class¡¡Unsupported¡¡£û¡¡¡¡
¡¡¡¡private¡¡static¡¡String£§£§¡¡s¡¡=¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡253¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡255¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¨one¡¨£»¡¡¡¨two¡¨£»¡¡¡¨three¡¨£»¡¡¡¨four¡¨£»¡¡¡¨five¡¨£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¨six¡¨£»¡¡¡¨seven¡¨£»¡¡¡¨eight¡¨£»¡¡¡¨nine¡¨£»¡¡¡¨ten¡¨£»¡¡¡¡
¡¡¡¡£ý£»¡¡¡¡
¡¡¡¡static¡¡List¡¡a¡¡=¡¡Arrays¡£toList£¨s£©£»¡¡¡¡
¡¡¡¡static¡¡List¡¡a2¡¡=¡¡Arrays¡£toList£¨¡¡¡¡
¡¡¡¡¡¡¡¡new¡¡String£§£§¡¡£û¡¡s£§3£§£»¡¡s£§4£§£»¡¡s£§5£§¡¡£ý£©£»¡¡¡¡
¡¡¡¡public¡¡static¡¡void¡¡main£¨String£§£§¡¡args£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡Collection1¡£print£¨a£©£»¡¡//¡¡Iteration¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¨a¡£contains£¨¡¨¡¡£«¡¡s£§0£§¡¡£«¡¡¡¨£©¡¡=¡¡¡¨¡¡£«¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡a¡£contains£¨s£§0£§£©£©£»¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¨a¡£containsAll£¨a2£©¡¡=¡¡¡¨¡¡£«¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡a¡£containsAll£¨a2£©£©£»¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨a¡£isEmpty£¨£©¡¡=¡¡¡¨¡¡£«¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡a¡£isEmpty£¨£©£©£»¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¨a¡£indexOf£¨¡¨¡¡£«¡¡s£§5£§¡¡£«¡¡¡¨£©¡¡=¡¡¡¨¡¡£«¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡a¡£indexOf£¨s£§5£§£©£©£»¡¡¡¡
¡¡¡¡¡¡¡¡//¡¡Traverse¡¡backwards£º¡¡¡¡
¡¡¡¡¡¡¡¡ListIterator¡¡lit¡¡=¡¡a¡£listIterator£¨a¡£size£¨£©£©£»¡¡¡¡
¡¡¡¡¡¡¡¡while£¨lit¡£hasPrevious£¨£©£©¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£print£¨lit¡£previous£¨£©£©£»¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡//¡¡Set¡¡the¡¡elements¡¡to¡¡different¡¡values£º¡¡¡¡
¡¡¡¡¡¡¡¡for£¨int¡¡i¡¡=¡¡0£»¡¡i¡¡¡¶¡¡a¡£size£¨£©£»¡¡i£«£«£©¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡a¡£set£¨i£»¡¡¡¨47¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡Collection1¡£print£¨a£©£»¡¡¡¡
¡¡¡¡¡¡¡¡//¡¡piles£»¡¡but¡¡won't¡¡run£º¡¡¡¡
¡¡¡¡¡¡¡¡lit¡£add£¨¡¨X¡¨£©£»¡¡//¡¡Unsupported¡¡operation¡¡¡¡
¡¡¡¡¡¡¡¡a¡£clear£¨£©£»¡¡//¡¡Unsupported¡¡¡¡
¡¡¡¡¡¡¡¡a¡£add£¨¡¨eleven¡¨£©£»¡¡//¡¡Unsupported¡¡¡¡
¡¡¡¡¡¡¡¡a¡£addAll£¨a2£©£»¡¡//¡¡Unsupported¡¡¡¡
¡¡¡¡¡¡¡¡a¡£retainAll£¨a2£©£»¡¡//¡¡Unsupported¡¡¡¡
¡¡¡¡¡¡¡¡a¡£remove£¨s£§0£§£©£»¡¡//¡¡Unsupported¡¡¡¡
¡¡¡¡¡¡¡¡a¡£removeAll£¨a2£©£»¡¡//¡¡Unsupported¡¡¡¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡///£º~¡¡¡¡
¡¡¡¡
´ÓÖпÉÒÔ¿´³ö£¬Êµ¼ÊֻʵÏÖÁË¡¡Collection¡¡ºÍ¡¡List¡¡½Ó¿ÚµÄÒ»²¿·Ö¡£Ê£ÓàµÄ·½·¨µ¼ÖÂÁ˲»ÊÜ»¶ÓµÄÒ»ÖÖÇé¿ö£¬¡¡
ÃûΪUnsupportedOperationException¡£ÔÚÏÂÒ»ÕÂÀÎÒÃǻὲÊöÎ¥ÀýµÄÏêϸÇé¿ö£¬µ«ÔÚÕâÀïÓбØÒª½øÐÐÒ»¡¡
ϼòµ¥ËµÃ÷¡£ÕâÀïµÄ¹Ø¼üÔÚÓÚ¡°¼¯ºÏ½Ó¿Ú¡±£¬ÒÔ¼°Ð¼¯ºÏ¿âÄÚµÄÁíһЩ½Ó¿Ú£¬ËüÃǶ¼°üº¬ÁË¡°¿ÉÑ¡µÄ¡±·½¡¡
·¨¡£ÔÚʵÏÖÄÇЩ½Ó¿ÚµÄ¼¯ºÏÀàÖУ¬»òÕßÌṩ¡¢»òÕßûÓÐÌṩ¶ÔÄÇЩ·½·¨µÄÖ§³Ö¡£Èôµ÷ÓÃÒ»¸öδ»ñÖ§³ÖµÄ·½¡¡
·¨£¬¾Í»áµ¼ÖÂÒ»¸öUnsupportedOperationException¡¡£¨²Ù×÷δ֧³ÖÎ¥Àý£©£¬Õâ±íÃ÷³öÏÖÁËÒ»¸ö±à³Ì´íÎ󡣡¡¡¡
´ó¼Ò»òÐí»á¾õµÃÆæ¹Ö£¬²»ÊÇ˵¡°½Ó¿Ú¡±ºÍ»ù´¡Àà×î´óµÄ¡°Âôµã¡±¾ÍÊÇËüÃÇÐíŵÕâЩ·½·¨ÄܲúÉúһЩÓÐÒâÒåµÄ¡¡
ÐÐΪÂð£¿ÉÏÊöÎ¥ÀýÆÆ»µÁËÄǸöÐíŵ¡ª¡ªËüµ÷ÓõÄÒ»²¿·Ö·½·¨²»½ö²»ÄܲúÉúÓÐÒâÒåµÄÐÐΪ£¬¶øÇÒ»¹»áÖÐÖ¹³ÌÐò¡¡
µÄÔËÐС£ÔÚÕâЩÇé¿öÏ£¬ÀàÐ͵ÄËùν°²È«±£Ö¤ËƺõÏÔµÃһǮ²»Öµ£¡µ«ÊÇ£¬Çé¿ö²¢Ã»ÓÐÏëÏóµÄÄÇô»µ¡£Í¨¹ý¡¡
Collection£¬List£¬Set¡¡»òÕßMap£¬±àÒëÆ÷ÈÔÈ»ÏÞÖÆÎÒÃÇÖ»Äܵ÷ÓÃÄǸö½Ó¿ÚÖеķ½·¨£¬ËùÒÔËüºÍ¡¡Smalltalk¡¡»¹¡¡
ÊÇ´æÔÚһЩÇø±ðµÄ£¨ÔÚ¡¡Smalltalk¡¡ÖУ¬¿ÉΪÈκζÔÏóµ÷ÓÃÈκη½·¨£¬¶øÇÒÖ»ÓÐÔÚÔËÐгÌÐòʱ²ÅÖªµÀÕâЩµ÷Óá¡
ÊÇ·ñ¿ÉÐУ©¡£³ý´ËÒÔÍ⣬ÒÔCollection¡¡×÷Ϊ×Ô±äÁ¿µÄ´ó¶àÊý·½·¨Ö»ÄÜ´ÓÄǸö¼¯ºÏÖжÁÈ¡Êý¾Ý¡ª¡ªCollection¡¡
µÄËùÓС°read¡¡¡±·½·¨¶¼²»ÊÇ¿ÉÑ¡µÄ¡£¡¡¡¡
ÕâÑùÒ»À´£¬ÏµÍ³¾Í¿É±ÜÃâÔÚÉè¼ÆÆÚ¼ä³öÏֽӿڵijåÍ»¡£¶øÔÚ¼¯ºÏ¿âµÄÆäËûÉè¼Æ·½°¸ÖУ¬×îÖÕ¾³£¶¼»áµÃµ½Êý¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡254¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡256¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
Á¿¹ý¶àµÄ½Ó¿Ú£¬ÓÃËüÃÇÃèÊö»ù±¾·½°¸µÄÿһÖֱ仯ÐÎʽ£¬ËùÒÔѧϰºÍÕÆÎÕÏԵ÷dz£À§ÄÑ¡£ÓÐЩʱºò£¬ÉõÖÁÄÑ¡¡
ÓÚ²¶×½½Ó¿ÚÖеÄËùÓÐÌØÊâÇé¿ö£¬ÒòΪÈËÃÇ¿ÉÄÜÉè¼Æ³öÈκÎнӿڡ£µ«¡¡Java¡¡µÄ¡°²»Ö§³ÖµÄ²Ù×÷¡±·½·¨È´´ïµ½ÁË¡¡
м¯ºÏ¿âµÄÒ»¸öÖØÒªÉè¼ÆÄ¿±ê£ºÒ×ÓÚѧϰºÍʹÓᣵ«ÊÇ£¬ÎªÁËʹÕâÒ»·½·¨ÕæÕýÓÐЧ£¬È´ÐèÂú×ãÏÂÊöÌõ¼þ£º¡¡¡¡
£¨1£©¡¡UnsupportedOperationException±ØÐëÊôÓÚÒ»ÖÖ¡°·Ç³£¡±Ê¼þ¡£Ò²¾ÍÊÇ˵£¬¶ÔÓÚ´ó¶àÊýÀàÀ´Ëµ£¬ËùÓв١¡
×÷¶¼Ó¦ÊÇ¿ÉÐеġ£Ö»ÓÐÔÚһЩÌØÊâÇé¿öÏ£¬Ò»¡¢Á½¸ö²Ù×÷²Å¿ÉÄÜδ»ñÖ§³Ö¡£Ð¼¯ºÏ¿âÂú×ãÁËÕâÒ»Ìõ¼þ£¬ÒòΪ¡¡
¾ø´ó¶àÊýʱºòÓõ½µÄÀࡪ¡ªArrayList£¬LinkedList£¬HashList¡¡ºÍ¡¡HashMap£¬ÒÔ¼°ÆäËû¼¯ºÏ·½°¸¡ª¡ª¶¼ÌṩÁË¡¡
¶ÔËùÓвÙ×÷µÄÖ§³Ö¡£µ«ÊÇ£¬Èç¹ûÏëн¨Ò»¸ö¼¯ºÏ£¬Í¬Ê±²»ÏëΪ¼¯ºÏ½Ó¿ÚÖеÄËùÓз½·¨¶¼ÌṩÓÐÒâÒåµÄ¶¨Ò壬¡¡
ͬʱÁîÆäÈÔÓëÏÖÓпâÅäºÏ£¬ÕâÖÖÉè¼Æ·½·¨Ò²È·ÊµÌṩÁËÒ»¸ö¡°ºóÃÅ¡±¿ÉÒÔÀûÓᣡ¡¡¡
£¨2£©¡¡ÈôÒ»¸ö²Ù×÷δ»ñÖ§³Ö£¬ÄÇôUnsupportedOperationException¡¡£¨Î´Ö§³ÖµÄ²Ù×÷Î¥Àý£©¼«ÓпÉÄÜÔÚʵÏÖÆÚ¡¡
¼ä³öÏÖ£¬Ôò²»ÊÇÔÚ²úÆ·Òѽ»¸¶¸ø¿Í»§ÒÔºó²Å»á³öÏÖ¡£Ëü±Ï¾¹Ö¸³öµÄÊÇÒ»¸ö±à³Ì´íÎ󡪡ª²»ÕýÈ·µØʹÓÃÁËÒ»¸ö¡¡
Àà¡£ÕâÒ»µã²»ÄÜÊ®·ÖÈ·¶¨£¬Í¨¹ýÒ²¿ÉÒÔ¿´³öÕâÖÖ·½°¸µÄ¡°ÊÔÑ顱ÌØÕ÷¡ª¡ªÖ»Óо¹ý¶à´ÎÊÔÑ飬²ÅÄÜÕÒ³ö×îÀí¡¡
ÏëµÄ¹¤×÷·½Ê½¡£¡¡¡¡
¡¡¡¡
ÔÚÉÏÃæµÄÀý×ÓÖУ¬Arrays¡£toList£¨£©²úÉúÁËÒ»¸ö¡¡List¡¡£¨ÁÐ±í£©£¬¸ÃÁбíÊÇÓÉÒ»¸ö¹Ì¶¨³¤¶ÈµÄÊý×éºóÍƳöÀ´¡¡
µÄ¡£Òò´ËΨһÄܹ»Ö§³ÖµÄ¾ÍÊÇÄÇЩ²»¸Ä±äÊý×鳤¶ÈµÄ²Ù×÷¡£ÔÚÁíÒ»·½Ã棬ÈôÇëÇóÒ»¸öнӿڱí´ï²»Í¬ÖÖÀàµÄ¡¡
ÐÐΪ£¨¿ÉÄܽÐ×÷¡°FixedSizeList¡¡¡±¡ª¡ª¹Ì¶¨³¤¶ÈÁÐ±í£©£¬¾ÍÓÐÔâÓö¸ü´óµÄ¸´Ôӳ̶ȵÄΣÏÕ¡£ÕâÑùÒ»À´£¬ÒÔºó¡¡
ÊÔͼʹÓÿâµÄʱºò£¬ºÜ¿ì¾Í»á·¢ÏÖ×Ô¼º²»Öª´ÓºÎ´¦ÏÂÊÖ¡£¡¡¡¡
¶ÔÄÇЩ²ÉÓá¡Collection£¬List£¬Set¡¡»òÕßMap¡¡×÷Ϊ²ÎÊýµÄ·½·¨£¬ËüÃǵÄÎĵµÓ¦µ±Ö¸³öÄÄЩ¿ÉÑ¡µÄ·½·¨ÊDZØÐë¡¡
ʵÏֵġ£¾Ù¸öÀý×ÓÀ´Ëµ£¬ÅÅÐòÒªÇóʵÏÖset£¨£©ºÍ¡¡Iterator¡£set£¨£©·½·¨£¬µ«²»°üÀ¨add£¨£©ºÍ¡¡remove£¨£©¡¡¡£¡¡¡¡
8¡£7¡£7¡¡¡¡ÅÅÐòºÍËÑË÷¡¡¡¡
Java¡¡1¡£2¡¡Ìí¼ÓÁË×Ô¼ºµÄÒ»Ì×ʵÓù¤¾ß£¬¿ÉÓÃÀ´¶ÔÊý×é»òÁбí½øÐÐÅÅÁкÍËÑË÷¡£ÕâЩ¹¤¾ß¶¼ÊôÓÚÁ½¸öÐÂÀàµÄ¡¡
¡¡¡°¾²Ì¬¡±·½·¨¡£ÕâÁ½¸öÀà·Ö±ðÊÇÓÃÓÚÅÅÐòºÍËÑË÷Êý×éµÄArrays£¬ÒÔ¼°ÓÃÓÚÅÅÐòºÍËÑË÷ÁбíµÄCollections¡£¡¡¡¡
¡¡¡¡
1¡£¡¡Êý×é¡¡¡¡
Arrays¡¡ÀàΪËùÓлù±¾Êý¾ÝÀàÐ͵ÄÊý×éÌṩÁËÒ»¸ö¹ýÔصġ¡sort£¨£©ºÍ¡¡binarySearch£¨£©£¬ËüÃÇÒà¿ÉÓÃÓÚString¡¡ºÍ¡¡
Object¡£ÏÂÃæÕâ¸öÀý×ÓÏÔʾ³öÈçºÎÅÅÐòºÍËÑË÷Ò»¸ö×Ö½ÚÊý×飨ÆäËûËùÓлù±¾Êý¾ÝÀàÐͶ¼ÊÇÀàËƵģ©ÒÔ¼°Ò»¸ö¡¡
String¡¡Êý×飺¡¡¡¡
¡¡¡¡
//£º¡¡Array1¡£java¡¡¡¡
//¡¡Testing¡¡the¡¡sorting¡¡&¡¡searching¡¡in¡¡Arrays¡¡¡¡
package¡¡c08¡£newcollections£»¡¡¡¡
import¡¡java¡£util¡£*£»¡¡¡¡
¡¡¡¡
public¡¡class¡¡Array1¡¡£û¡¡¡¡
¡¡¡¡static¡¡Random¡¡r¡¡=¡¡new¡¡Random£¨£©£»¡¡¡¡
¡¡¡¡static¡¡String¡¡ssource¡¡=¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¨ABCDEFGHIJKLMNOPQRSTUVWXYZ¡¨¡¡£«¡¡¡¡
¡¡¡¡¡¡¡¡¡¨abcdefghijklmnopqrstuvwxyz¡¨£»¡¡¡¡
¡¡¡¡static¡¡char£§£§¡¡src¡¡=¡¡ssource¡£toCharArray£¨£©£»¡¡¡¡
¡¡¡¡//¡¡Create¡¡a¡¡random¡¡String¡¡¡¡
¡¡¡¡public¡¡static¡¡String¡¡randString£¨int¡¡length£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡char£§£§¡¡buf¡¡=¡¡new¡¡char£§length£§£»¡¡¡¡
¡¡¡¡¡¡¡¡int¡¡rnd£»¡¡¡¡
¡¡¡¡¡¡¡¡for£¨int¡¡i¡¡=¡¡0£»¡¡i¡¡¡¶¡¡length£»¡¡i£«£«£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡rnd¡¡=¡¡Math¡£abs£¨r¡£nextInt£¨£©£©¡¡£¥¡¡src¡£length£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡buf£§i£§¡¡=¡¡src£§rnd£§£»¡¡¡¡
¡¡¡¡¡¡¡¡£ý¡¡¡¡
¡¡¡¡¡¡¡¡return¡¡new¡¡String£¨buf£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡//¡¡Create¡¡a¡¡random¡¡array¡¡of¡¡Strings£º¡¡¡¡
¡¡¡¡public¡¡static¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡255¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡257¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡String£§£§¡¡randStrings£¨int¡¡length£»¡¡int¡¡size£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡String£§£§¡¡s¡¡=¡¡new¡¡String£§size£§£»¡¡¡¡
¡¡¡¡¡¡¡¡for£¨int¡¡i¡¡=¡¡0£»¡¡i¡¡¡¶¡¡size£»¡¡i£«£«£©¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡s£§i£§¡¡=¡¡randString£¨length£©£»¡¡¡¡
¡¡¡¡¡¡¡¡return¡¡s£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡public¡¡static¡¡void¡¡print£¨byte£§£§¡¡b£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡for£¨int¡¡i¡¡=¡¡0£»¡¡i¡¡¡¶¡¡b¡£length£»¡¡i£«£«£©¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£print£¨b£§i£§¡¡£«¡¡¡¨¡¡¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡public¡¡static¡¡void¡¡print£¨String£§£§¡¡s£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡for£¨int¡¡i¡¡=¡¡0£»¡¡i¡¡¡¶¡¡s¡£length£»¡¡i£«£«£©¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£print£¨s£§i£§¡¡£«¡¡¡¨¡¡¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡public¡¡static¡¡void¡¡main£¨String£§£§¡¡args£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡byte£§£§¡¡b¡¡=¡¡new¡¡byte£§15£§£»¡¡¡¡
¡¡¡¡¡¡¡¡r¡£nextBytes£¨b£©£»¡¡//¡¡Fill¡¡with¡¡random¡¡bytes¡¡¡¡
¡¡¡¡¡¡¡¡print£¨b£©£»¡¡¡¡
¡¡¡¡¡¡¡¡Arrays¡£sort£¨b£©£»¡¡¡¡
¡¡¡¡¡¡¡¡print£¨b£©£»¡¡¡¡
¡¡¡¡¡¡¡¡int¡¡loc¡¡=¡¡Arrays¡£binarySearch£¨b£»¡¡b£§10£§£©£»¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Location¡¡of¡¡¡¨¡¡£«¡¡b£§10£§¡¡£«¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¨¡¡=¡¡¡¨¡¡£«¡¡loc£©£»¡¡¡¡
¡¡¡¡¡¡¡¡//¡¡Test¡¡String¡¡sort¡¡&¡¡search£º¡¡¡¡
¡¡¡¡¡¡¡¡String£§£§¡¡s¡¡=¡¡randStrings£¨4£»¡¡10£©£»¡¡¡¡
¡¡¡¡¡¡¡¡print£¨s£©£»¡¡¡¡
¡¡¡¡¡¡¡¡Arrays¡£sort£¨s£©£»¡¡¡¡
¡¡¡¡¡¡¡¡print£¨s£©£»¡¡¡¡
¡¡¡¡¡¡¡¡loc¡¡=¡¡Arrays¡£binarySearch£¨s£»¡¡s£§4£§£©£»¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Location¡¡of¡¡¡¨¡¡£«¡¡s£§4£§¡¡£«¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¨¡¡=¡¡¡¨¡¡£«¡¡loc£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡///£º~¡¡¡¡
¡¡¡¡
ÀàµÄµÚÒ»²¿·Ö°üº¬ÁËÓÃÓÚ²úÉúËæ»ú×Ö´®¶ÔÏóµÄʵÓù¤¾ß£¬¿É¹©Ñ¡ÔñµÄËæ»ú×Öĸ±£´æÔÚÒ»¸ö×Ö·ûÊý×éÖС£¡¡
randString£¨£©·µ»ØÒ»¸öÈÎÒⳤ¶ÈµÄ×Ö´®£»¶ø¡¡readStrings£¨£©´´½¨Ëæ»ú×Ö´®µÄÒ»¸öÊý×飬ͬʱ¸ø¶¨Ã¿¸ö×Ö´®µÄ¡¡
³¤¶ÈÒÔ¼°Ï£ÍûµÄÊý×é´óС¡£Á½¸öprint£¨£©·½·¨¼ò»¯Á˶Ôʾ·¶Êý×éµÄÏÔʾ¡£ÔÚ¡¡main£¨£©ÖУ¬Random¡£nextBytes£¨£©¡¡
ÓÃËæ»úÑ¡ÔñµÄ×Ö½ÚÌî³äÊý×é×Ô±äÁ¿£¨Ã»ÓжÔÓ¦µÄRandom¡¡·½·¨ÓÃÓÚ´´½¨ÆäËû»ù±¾Êý¾ÝÀàÐ͵ÄÊý×飩¡£»ñµÃÒ»¸ö¡¡
Êý×éºó£¬±ã¿É·¢ÏÖΪÁËÖ´ÐÐsort£¨£©»òÕß¡¡binarySearch£¨£©£¬Ö»Ðè·¢³öÒ»´Î·½·¨µ÷Óü´¿É¡£ÓëbinarySearch£¨£©¡¡
ÓйصĻ¹ÓÐÒ»¸öÖØÒªµÄ¾¯¸æ£ºÈôÔÚÖ
¿ì½Ý²Ù×÷: °´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ °´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ °´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿!
ÎÂÜ°Ìáʾ£º ο´Ð¡ËµµÄͬʱ·¢±íÆÀÂÛ£¬Ëµ³ö×Ô¼ºµÄ¿´·¨ºÍÆäËüС»ï°éÃÇ·ÖÏíÒ²²»´íŶ£¡·¢±íÊéÆÀ»¹¿ÉÒÔ»ñµÃ»ý·ÖºÍ¾Ñé½±Àø£¬ÈÏÕæдԴ´ÊéÆÀ ±»²ÉÄÉΪ¾«ÆÀ¿ÉÒÔ»ñµÃ´óÁ¿½ð±Ò¡¢»ý·ÖºÍ¾Ñé½±ÀøŶ£¡