開發(fā)規(guī)范(2)

集合轉(zhuǎn)數(shù)組和數(shù)組轉(zhuǎn)集合

  1. 使用集合轉(zhuǎn)數(shù)組的方法蜘渣,必須使用集合的 toArray(T[] array)嫌褪,傳入的是類型完全 一樣的數(shù)組器一,大小就是 list.size()
說明:使用 toArray 帶參方法障涯,入?yún)⒎峙涞臄?shù)組空間不夠大時宪躯,toArray 方法內(nèi)部將重新分配 內(nèi)存空間乔宿,并返回新數(shù)組地址;
如果數(shù)組元素大于實(shí)際所需访雪,下標(biāo)為[ list.size() ]的數(shù)組 元素將被置為 null详瑞,其它數(shù)組元素保持原值囤官,因此最好將方法入?yún)?shù)組大小定義與集合元素 個數(shù)一致。
如果直接使用 toArray 無參方法存在問題蛤虐,此方法返回值只能是 Object[]類党饮,若強(qiáng)轉(zhuǎn)其它 類型數(shù)組將出現(xiàn) ClassCastException 錯誤
List<String> list = new ArrayList<String>(2);        
list.add("guan");        
list.add("bao");         
String[] array = new String[list.size()];        
array = list.toArray(array); 
  1. 使用工具類 Arrays.asList()把數(shù)組轉(zhuǎn)換成集合時,不能使用其修改集合相關(guān)的方 法驳庭,它的 add/remove/clear 方法會拋出 UnsupportedOperationException 異常刑顺。
asList 的返回對象是一個 Arrays 內(nèi)部類,并沒有實(shí)現(xiàn)集合的修改方法饲常。Arrays.asList 體現(xiàn)的是適配器模式蹲堂,只是轉(zhuǎn)換接口,后臺的數(shù)據(jù)仍是數(shù)組贝淤。 
    String[] str = new String[] { "you", "wu" };     
List list = Arrays.asList(str); 
第一種情況:list.add("yangguanbao"); 運(yùn)行時異常柒竞。 
第二種情況:str[0] = "gujin"; 那么 list.get(0)也會隨之修改。 

集合

創(chuàng)建集合時指定集合大小播聪,無法確認(rèn)容量時就設(shè)置為16朽基。
遍歷MAP集合使用entrySet 而不是keySet

說明:keySet 其實(shí)是遍歷了 2 次,一次是轉(zhuǎn)為 Iterator 對象离陶,另一次是從 hashMap 中取出 key 所對應(yīng)的 value稼虎。
       而 entrySet 只是遍歷了一次就把 key 和 value 都放到了 entry 中,效 率更高招刨。如果是 JDK8霎俩,使用 Map.foreach 方法。 
正例:values()返回的是 V 值集合沉眶,是一個 list 集合對象打却;
      keySet()返回的是 K 值集合,是 一個 Set 集合對象谎倔;
      entrySet()返回的是 K-V 值組合集合柳击。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市传藏,隨后出現(xiàn)的幾起案子腻暮,更是在濱河造成了極大的恐慌,老刑警劉巖毯侦,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異具垫,居然都是意外死亡侈离,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進(jìn)店門筝蚕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來卦碾,“玉大人铺坞,你說我怎么就攤上這事≈夼郑” “怎么了济榨?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長绿映。 經(jīng)常有香客問我擒滑,道長,這世上最難降的妖魔是什么叉弦? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任丐一,我火速辦了婚禮,結(jié)果婚禮上淹冰,老公的妹妹穿的比我還像新娘库车。我一直安慰自己,他們只是感情好樱拴,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布柠衍。 她就那樣靜靜地躺著,像睡著了一般晶乔。 火紅的嫁衣襯著肌膚如雪拧略。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天瘪弓,我揣著相機(jī)與錄音垫蛆,去河邊找鬼。 笑死腺怯,一個胖子當(dāng)著我的面吹牛袱饭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播呛占,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼虑乖,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了晾虑?” 一聲冷哼從身側(cè)響起疹味,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎帜篇,沒想到半個月后糙捺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡笙隙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年洪灯,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片竟痰。...
    茶點(diǎn)故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡签钩,死狀恐怖掏呼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情铅檩,我是刑警寧澤憎夷,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站昧旨,受9級特大地震影響拾给,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜臼予,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一鸣戴、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧粘拾,春花似錦窄锅、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至械哟,卻和暖如春疏之,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背暇咆。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工锋爪, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人爸业。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓其骄,卻偏偏與公主長得像,于是被迫代替她去往敵國和親扯旷。 傳聞我的和親對象是個殘疾皇子拯爽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評論 2 354

推薦閱讀更多精彩內(nèi)容