°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
¡ª¡ª¡ª¡ªÎ´ÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡
¡¡¡¡¡¡¡¡print£¨a£©£»¡¡¡¡
¡¡¡¡¡¡¡¡Arrays¡£sort£¨a£©£»¡¡¡¡
¡¡¡¡¡¡¡¡print£¨a£©£»¡¡¡¡
¡¡¡¡¡¡¡¡int¡¡loc¡¡=¡¡Arrays¡£binarySearch£¨a£»¡¡a£§3£§£©£»¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Location¡¡of¡¡¡¨¡¡£«¡¡a£§3£§¡¡£«¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¨¡¡=¡¡¡¨¡¡£«¡¡loc£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡///£º~¡¡¡¡
¡¡¡¡
µ±È»£¬ÎÒÃǵġ¡pareTo£¨£©·½·¨Òà¿É¸ù¾Ýʵ¼ÊÇé¿öÔö´ó¸´Ôӳ̶ȡ£¡¡¡¡
¡¡¡¡
3¡£¡¡ÁÐ±í¡¡¡¡
¿ÉÓÃÓëÊý×éÏàͬµÄÐÎʽÅÅÐòºÍËÑË÷Ò»¸öÁÐ±í£¨List¡¡£©¡£ÓÃÓÚÅÅÐòºÍËÑË÷ÁбíµÄ¾²Ì¬·½·¨°üº¬ÔÚÀà¡¡
Collections¡¡ÖУ¬µ«ËüÃÇÓµÓÐÓëArrays¡¡Öв¶àµÄÇ©Ãû£ºsort£¨List£©ÓÃÓÚ¶ÔÒ»¸öʵÏÖÁË¡¡parable¡¡µÄ¶ÔÏó¡¡
ÁÐ±í½øÐÐÅÅÐò£»binarySearch£¨List£»Object£©ÓÃÓÚ²éÕÒÁбíÖеÄij¸ö¶ÔÏó£»sort£¨List£»parator£©ÀûÓÃÒ»¸ö¡¡
¡¡¡°±È½ÏÆ÷¡±¶ÔÒ»¸öÁÐ±í½øÐÐÅÅÐò£»¶øbinarySearch£¨List£»Object£»parator£©ÔòÓÃÓÚ²éÕÒÄǸöÁбíÖеÄÒ»¸ö¡¡
¶ÔÏó£¨×¢Ê͢ᣩ¡£ÏÂÃæÕâ¸öÀý×ÓÀûÓÃÁËÔ¤Ïȶ¨ÒåºÃµÄpClass¡¡ºÍ¡¡Alphap¡¡À´Ê¾·¶¡¡Collections¡¡Öеĸ÷ÖÖ¡¡
ÅÅÐò¹¤¾ß£º¡¡¡¡
¡¡¡¡
//£º¡¡ListSort¡£java¡¡¡¡
//¡¡Sorting¡¡and¡¡searching¡¡Lists¡¡with¡¡'Collections'¡¡¡¡
package¡¡c08¡£newcollections£»¡¡¡¡
import¡¡java¡£util¡£*£»¡¡¡¡
¡¡¡¡
public¡¡class¡¡ListSort¡¡£û¡¡¡¡
¡¡¡¡public¡¡static¡¡void¡¡main£¨String£§£§¡¡args£©¡¡£û¡¡¡¡¡¡
¡¡¡¡¡¡¡¡final¡¡int¡¡SZ¡¡=¡¡20£»¡¡¡¡
¡¡¡¡¡¡¡¡//¡¡Using¡¡¡¨natural¡¡parison¡¡method¡¨£º¡¡¡¡
¡¡¡¡¡¡¡¡List¡¡a¡¡=¡¡new¡¡ArrayList£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡for£¨int¡¡i¡¡=¡¡0£»¡¡i¡¡¡¶¡¡SZ£»¡¡i£«£«£©¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡a¡£add£¨new¡¡pClass£¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¨int£©£¨Math¡£random£¨£©¡¡*100£©£©£©£»¡¡¡¡
¡¡¡¡¡¡¡¡Collection1¡£print£¨a£©£»¡¡¡¡
¡¡¡¡¡¡¡¡Collections¡£sort£¨a£©£»¡¡¡¡
¡¡¡¡¡¡¡¡Collection1¡£print£¨a£©£»¡¡¡¡
¡¡¡¡¡¡¡¡Object¡¡find¡¡=¡¡a¡£get£¨SZ/2£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡258¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡260¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡int¡¡loc¡¡=¡¡Collections¡£binarySearch£¨a£»¡¡find£©£»¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Location¡¡of¡¡¡¨¡¡£«¡¡find¡¡£«¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¨¡¡=¡¡¡¨¡¡£«¡¡loc£©£»¡¡¡¡
¡¡¡¡¡¡¡¡//¡¡Using¡¡a¡¡parator£º¡¡¡¡
¡¡¡¡¡¡¡¡List¡¡b¡¡=¡¡new¡¡ArrayList£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡for£¨int¡¡i¡¡=¡¡0£»¡¡i¡¡¡¶¡¡SZ£»¡¡i£«£«£©¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡b¡£add£¨Array1¡£randString£¨4£©£©£»¡¡¡¡
¡¡¡¡¡¡¡¡Collection1¡£print£¨b£©£»¡¡¡¡
¡¡¡¡¡¡¡¡Alphap¡¡ac¡¡=¡¡new¡¡Alphap£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡Collections¡£sort£¨b£»¡¡ac£©£»¡¡¡¡
¡¡¡¡¡¡¡¡Collection1¡£print£¨b£©£»¡¡¡¡
¡¡¡¡¡¡¡¡find¡¡=¡¡b¡£get£¨SZ/2£©£»¡¡¡¡
¡¡¡¡¡¡¡¡//¡¡Must¡¡use¡¡the¡¡parator¡¡to¡¡search£»¡¡also£º¡¡¡¡
¡¡¡¡¡¡¡¡loc¡¡=¡¡Collections¡£binarySearch£¨b£»¡¡find£»¡¡ac£©£»¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Location¡¡of¡¡¡¨¡¡£«¡¡find¡¡£«¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¨¡¡=¡¡¡¨¡¡£«¡¡loc£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡///£º~¡¡¡¡
¡¡¡¡
¢á£ºÔÚ±¾Êéд×÷ʱ£¬ÒÑÐû²¼ÁËÒ»¸öеÄCollections¡£stableSort£¨£©£¬¿ÉÓÃËü½øÐкϲ¢Ê½ÅÅÐò£¬µ«»¹Ã»ÓÐËüµÄ¡¡
²âÊÔ°æÎÊÊÀ¡£¡¡¡¡
¡¡¡¡
ÕâЩ·½·¨µÄÓ÷¨ÓëÔÚArrays¡¡ÖеÄÓ÷¨ÊÇÍêȫһÖµģ¬Ö»ÊÇÓÃÒ»¸öÁбí´úÌæÁËÊý×é¡£¡¡¡¡
TreeMap¡¡Ò²±ØÐë¸ù¾Ý¡¡parable¡¡»òÕßparator¡¡¶Ô×Ô¼ºµÄ¶ÔÏó½øÐÐÅÅÐò¡£¡¡¡¡
8¡£7¡£8¡¡¡¡ÊµÓù¤¾ß¡¡¡¡
Collections¡¡ÀàÖк¬ÓÐÆäËû´óÁ¿ÓÐÓõÄʵÓù¤¾ß£º¡¡¡¡
¡¡¡¡
enumeration£¨Collection£©¡¡Produces¡¡an¡¡old¡style¡¡E¡¡n¡¡u¡¡m¡¡e¡¡r¡¡a¡¡t¡¡i¡¡o¡¡n¡¡¡¡for¡¡the¡¡argument¡£¡¡¡¡
m¡¡a¡¡x¡¡£¨¡¡C¡¡o¡¡l¡¡l¡¡e¡¡c¡¡t¡¡i¡¡o¡¡n¡¡£©¡¡¡¡¡¡¡¡¡¡Produces¡¡the¡¡maximum¡¡or¡¡minimum¡¡element¡¡in¡¡the¡¡argument¡¡using¡¡the¡¡¡¡
m¡¡i¡¡n¡¡£¨¡¡C¡¡o¡¡l¡¡l¡¡e¡¡c¡¡t¡¡i¡¡o¡¡n¡¡£©¡¡¡¡¡¡natural¡¡parison¡¡method¡¡of¡¡the¡¡objects¡¡in¡¡the¡¡C¡¡o¡¡l¡¡l¡¡e¡¡c¡¡t¡¡i¡¡o¡¡n¡¡¡£¡¡¡¡
m¡¡a¡¡x¡¡£¨¡¡C¡¡o¡¡l¡¡l¡¡e¡¡c¡¡t¡¡i¡¡o¡¡n¡¡£»¡¡¡¡¡¡Produces¡¡the¡¡maximum¡¡or¡¡minimum¡¡element¡¡in¡¡the¡¡Collection¡¡using¡¡the¡¡¡¡
C¡¡o¡¡m¡¡p¡¡a¡¡r¡¡a¡¡t¡¡o¡¡r¡¡£©¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡C¡¡o¡¡m¡¡p¡¡a¡¡r¡¡a¡¡t¡¡o¡¡r¡¡¡£¡¡¡¡¡¡
m¡¡i¡¡n¡¡£¨¡¡C¡¡o¡¡l¡¡l¡¡e¡¡c¡¡t¡¡i¡¡o¡¡n¡¡£»¡¡¡¡¡¡
C¡¡o¡¡m¡¡p¡¡a¡¡r¡¡a¡¡t¡¡o¡¡r¡¡£©¡¡¡¡¡¡
nCopies£¨int¡¡n£»¡¡Object¡¡o£©¡¡Returns¡¡an¡¡immutable¡¡L¡¡i¡¡s¡¡t¡¡of¡¡size¡¡n¡¡¡¡whose¡¡handles¡¡all¡¡point¡¡to¡¡o¡£¡¡¡¡
subList£¨List£»¡¡int¡¡min£»¡¡int¡¡Returns¡¡a¡¡new¡¡L¡¡i¡¡s¡¡t¡¡¡¡backed¡¡by¡¡the¡¡specified¡¡argument¡¡List¡¡¡¡that¡¡is¡¡a¡¡¡¡
m¡¡a¡¡x¡¡£©¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡window¡¡into¡¡that¡¡argument¡¡with¡¡indexes¡¡starting¡¡at¡¡min¡¡¡¡and¡¡stopping¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡just¡¡before¡¡max¡¡¡£¡¡¡¡¡¡
¡¡¡¡
enumeration£¨Collection£©¡¡Îª×Ô±äÁ¿²úÉúÔʼ·ç¸ñµÄEnumeration¡¡£¨Ã¶¾Ù£©¡¡¡¡
max£¨Collection£©£¬min£¨Collection£©¡¡ÔÚ×Ô±äÁ¿ÖÐÓü¯ºÏÄÚ¶ÔÏóµÄ×ÔÈ»±È½Ï·½·¨²úÉú×î´ó»ò×îÐ¡ÔªËØ¡¡¡¡
max£¨Collection£»parator£©£¬min£¨Collection£»parator£©¡¡ÔÚ¼¯ºÏÄÚÓÃ±È½ÏÆ÷²úÉú×î´ó»ò×îÐ¡ÔªËØ¡¡¡¡
nCopies£¨int¡¡n£»¡¡Object¡¡o£©¡¡·µ»Ø³¤¶ÈΪ¡¡n¡¡µÄÒ»¸ö²»¿É±äÁÐ±í£¬ËüµÄËùÓоä±ú¾ùÖ¸Ïòo¡¡¡¡
subList£¨List£»int¡¡min£»int¡¡max£©¡¡·µ»ØÓÉÖ¸¶¨²ÎÊýÁбíºóÍÆµÃµ½µÄÒ»¸öÐÂÁÐ±í¡£¿É½«Õâ¸öÁбíÏëÏó³ÉÒ»¸ö¡¡
¡¡¡°´°¿Ú¡±£¬Ëü×ÔË÷ÒýΪmin¡¡µÄµØ·½¿ªÊ¼£¬ÕýºÃ½áÊøÓÚmax¡¡µÄÇ°Ãæ¡¡¡¡
¡¡¡¡
×¢Òâmin£¨£©ºÍmax£¨£©¶¼ÊÇËæÍ¬Collection¡¡¶ÔÏó¹¤×÷µÄ£¬¶ø·ÇËæÍ¬¡¡List£¬ËùÒÔ²»±Øµ£ÐÄCollection¡¡ÊÇ·ñÐèÒª¡¡
ÅÅÐò£¨¾ÍÏóÔçÏÈÖ¸³öµÄÄÇÑù£¬ÔÚÖ´ÐÐÒ»´Î¡¡binarySearch£¨£©¡ª¡ª¼´¶þ½øÖÆËÑË÷¡ª¡ªÖ®Ç°£¬±ØÐë¶ÔÒ»¸ö¡¡List¡¡»ò¡¡
ÕßÒ»¸öÊý×éÖ´ÐС¡sort£¨£©£©¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡259¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡261¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡
1¡£¡¡Ê¹¡¡Collection¡¡»ò¡¡Map¡¡²»¿ÉÐ޸ġ¡¡¡
ͨ³££¬´´½¨¡¡Collection¡¡»ò¡¡Map¡¡µÄÒ»¸ö¡°Ö»¶Á¡±°æ±¾ÏԵøüÓÐÀûһЩ¡£Collections¡¡ÀàÔÊÐíÎÒÃÇ´ïµ½Õâ¸öÄ¿¡¡
±ê£¬·½·¨Êǽ«ÔʼÈÝÆ÷´«µÝ½øÈëÒ»¸ö·½·¨£¬²¢ÁîÆä´«»ØÒ»¸öÖ»¶Á°æ±¾¡£Õâ¸ö·½·¨¹²ÓÐËÄÖֱ仯ÐÎʽ£¬·Ö±ðÓá¡
ÓÚCollection¡¡£¨Èç¹û²»Ïë°Ñ¼¯ºÏµ±×÷Ò»ÖÖ¸üÌØÊâµÄÀàÐͶԴý£©¡¢List¡¢Set¡¡ÒÔ¼°Map¡¡¡£ÏÂÃæÕâ¸öÀý×ÓÑÝʾÁË¡¡
ΪËüÃǷֱ𹹽¨Ö»¶Á°æ±¾µÄÕýÈ··½·¨£º¡¡¡¡
¡¡¡¡
//£º¡¡ReadOnly¡£java¡¡¡¡
//¡¡Using¡¡the¡¡Collections¡£unmodifiable¡¡methods¡¡¡¡
package¡¡c08¡£newcollections£»¡¡¡¡
import¡¡java¡£util¡£*£»¡¡¡¡
¡¡¡¡
public¡¡class¡¡ReadOnly¡¡£û¡¡¡¡
¡¡¡¡public¡¡static¡¡void¡¡main£¨String£§£§¡¡args£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡Collection¡¡c¡¡=¡¡new¡¡ArrayList£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡Collection1¡£fill£¨c£©£»¡¡//¡¡Insert¡¡useful¡¡data¡¡¡¡
¡¡¡¡¡¡¡¡c¡¡=¡¡Collections¡£unmodifiableCollection£¨c£©£»¡¡¡¡
¡¡¡¡¡¡¡¡Collection1¡£print£¨c£©£»¡¡//¡¡Reading¡¡is¡¡OK¡¡¡¡
¡¡¡¡¡¡¡¡//£¡¡¡c¡£add£¨¡¨one¡¨£©£»¡¡//¡¡Can't¡¡change¡¡it¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡List¡¡a¡¡=¡¡new¡¡ArrayList£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡Collection1¡£fill£¨a£©£»¡¡¡¡
¡¡¡¡¡¡¡¡a¡¡=¡¡Collections¡£unmodifiableList£¨a£©£»¡¡¡¡
¡¡¡¡¡¡¡¡ListIterator¡¡lit¡¡=¡¡a¡£listIterator£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨lit¡£next£¨£©£©£»¡¡//¡¡Reading¡¡OK¡¡¡¡
¡¡¡¡¡¡¡¡//£¡¡¡lit¡£add£¨¡¨one¡¨£©£»¡¡//¡¡Can't¡¡change¡¡it¡¡¡¡
¡¡¡¡
¡¡¡¡¡¡¡¡Set¡¡s¡¡=¡¡new¡¡HashSet£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡Collection1¡£fill£¨s£©£»¡¡¡¡
¡¡¡¡¡¡¡¡s¡¡=¡¡Collections¡£unmodifiableSet£¨s£©£»¡¡¡¡
¡¡¡¡¡¡¡¡Collection1¡£print£¨s£©£»¡¡//¡¡Reading¡¡OK¡¡¡¡
¡¡¡¡¡¡¡¡//£¡¡¡s¡£add£¨¡¨one¡¨£©£»¡¡//¡¡Can't¡¡change¡¡it¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡Map¡¡m¡¡=¡¡new¡¡HashMap£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡Map1¡£fill£¨m£»¡¡Map1¡£testData1£©£»¡¡¡¡
¡¡¡¡¡¡¡¡m¡¡=¡¡Collections¡£unmodifiableMap£¨m£©£»¡¡¡¡
¡¡¡¡¡¡¡¡Map1¡£print£¨m£©£»¡¡//¡¡Reading¡¡OK¡¡¡¡
¡¡¡¡¡¡¡¡//£¡¡¡m¡£put£¨¡¨Ralph¡¨£»¡¡¡¨Howdy£¡¡¨£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡///£º~¡¡¡¡
¡¡¡¡
¶ÔÓÚÿÖÖÇé¿ö£¬ÔÚ½«ÆäÕýʽ±äΪֻ¶ÁÒÔǰ£¬¶¼±ØÐëÓÃÓÐÓÐЧµÄÊý¾ÝÌî³äÈÝÆ÷¡£Ò»µ©ÔØÈë³É¹¦£¬×î¼ÑµÄ×ö·¨¾Í¡¡
ÊÇÓá°²»¿ÉÐ޸ġ±µ÷ÓòúÉúµÄ¾ä±úÌæ»»ÏÖÓеľä±ú¡£ÕâÑù×ö¿ÉÓÐЧ±ÜÃ⽫Æä±ä³É²»¿ÉÐ޸ĺó²»É÷¸Ä±äÆäÖеġ¡
ÄÚÈÝ¡£ÔÚÁíÒ»·½Ã棬¸Ã¹¤¾ßÒ²ÔÊÐíÎÒÃÇÔÚÒ»¸öÀàÖн«Äܹ»Ð޸ĵÄÈÝÆ÷±£³ÖΪprivate¡¡×´Ì¬£¬²¢¿É´ÓÒ»¸ö·½·¨¡¡
µ÷ÓÃÖзµ»ØÖ¸ÏòÄǸöÈÝÆ÷µÄÒ»¸öÖ»¶Á¾ä±ú¡£ÕâÑùÒ»À´£¬ËäÈ»ÎÒÃÇ¿ÉÔÚÀàÀïÐÞ¸