Java - 泛型的理解

做CS61B的homework6,碰到了一個(gè)問(wèn)題,本來(lái)想忽視翎冲,問(wèn)了之后才發(fā)現(xiàn)是大問(wèn)題。
前提:
我現(xiàn)在要構(gòu)造一個(gè)size = 100 的哈希表,里面裝LinkedList, 然后每個(gè)鏈表用來(lái)裝發(fā)生沖突的拆火,Key相等的類 Entry。

hashTable = new LinkedList<Entry>[sizeEstimate];
是錯(cuò)的涂圆。但是如果寫(xiě)们镜,
hashTable = (LinkedList<Entry>[])new LinkedList[sizeEstimate];
這么寫(xiě)就對(duì)了。
其中就涉及到 泛型的問(wèn)題润歉。之前也或多或少碰到過(guò)憎账。剛剛仔細(xì)查了下,有些收獲卡辰,總體而言胞皱,如下。
Java中的數(shù)組必須知道它所持有的確切類型九妈。
然而反砌,對(duì)于一個(gè)泛型,程序無(wú)法獲得它的具體的參數(shù)類型萌朱。
即宴树,**數(shù)組是具體化的(reified),而泛型在運(yùn)行時(shí)是被擦除的(erasure)晶疼。這句話的意思是數(shù)組是在運(yùn)行時(shí)才去判斷數(shù)組元素的類型約束酒贬,而泛型正好相反,在運(yùn)行時(shí)翠霍,泛型的類型信息是會(huì)被擦除的锭吨,只有編譯的時(shí)候才會(huì)對(duì)類型進(jìn)行強(qiáng)化。 **
所以數(shù)組和泛型是水火不容的寒匙。
那么這個(gè)問(wèn)題有什么解決方法零如。
方法一就是用 Cast,如我上所說(shuō)锄弱。但也有不好的地方考蕾。強(qiáng)制轉(zhuǎn)換對(duì)程序影響不好。具體哪里不好我也不懂会宪,那老頭這么說(shuō)的肖卧。那就這么說(shuō)吧。
方法二:用ArrayList 來(lái)解決問(wèn)題掸鹅。
先說(shuō)下塞帐,ArrayList沟沙。目前我的理解。
他是一個(gè)List壁榕,實(shí)現(xiàn)了List的接口矛紫,但同時(shí),他又擁有一些Array的特點(diǎn)牌里。
比如颊咬,

ArrayList a = new ArrayList<LinkedList<Entry>>();
for (int i = 0; i < 100; i++)
        a.add(new LinkedList<Entry>());

就等效于:

hashTable = new LinkedList<Entry>[100]; //ILLEGAL!牡辽!違法的 

然后喳篇,需要在哈希值87處插入元素時(shí),就:

(a.get(87)).add(new Entry());

然后态辛,這個(gè)的復(fù)雜度只有O(1).也就是麸澜,基本實(shí)現(xiàn)了數(shù)組的特征,可以常數(shù)時(shí)間內(nèi)快速定位奏黑。實(shí)現(xiàn)操作炊邦。而且,這個(gè)ArrayList 可以動(dòng)態(tài)改變大小熟史。畢竟本質(zhì)是List.
但同時(shí)馁害,他又擁有List的屬性,比如蹂匹, remove(), 等碘菜,都是線性的。
有時(shí)間可以好好研究下源碼限寞。

要做的好多啊忍啸。。
最推薦的泛型的一個(gè)文章履植。
http://zddava.iteye.com/blog/352850

下面幾個(gè)也都還不錯(cuò)计雌。
http://m.blog.csdn.net/blog/bhq2010/12653797
http://www.ibm.com/developerworks/cn/java/j-jtp01255.html
http://blog.csdn.net/eric_sunah/article/details/7262486

**
總結(jié):
Java泛型, ArrayList
**

今天妹子就要考托福了静尼。希望她可以上92.
Anyway, Good luck, Richardo!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末白粉,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子鼠渺,更是在濱河造成了極大的恐慌,老刑警劉巖眷细,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拦盹,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡溪椎,警方通過(guò)查閱死者的電腦和手機(jī)普舆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門恬口,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人沼侣,你說(shuō)我怎么就攤上這事祖能。” “怎么了蛾洛?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵养铸,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我轧膘,道長(zhǎng)钞螟,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任谎碍,我火速辦了婚禮鳞滨,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蟆淀。我一直安慰自己拯啦,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布熔任。 她就那樣靜靜地躺著提岔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪笋敞。 梳的紋絲不亂的頭發(fā)上碱蒙,一...
    開(kāi)封第一講書(shū)人閱讀 52,457評(píng)論 1 311
  • 那天,我揣著相機(jī)與錄音夯巷,去河邊找鬼赛惩。 笑死,一個(gè)胖子當(dāng)著我的面吹牛趁餐,可吹牛的內(nèi)容都是我干的喷兼。 我是一名探鬼主播,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼后雷,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼季惯!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起臀突,我...
    開(kāi)封第一講書(shū)人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤勉抓,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后候学,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體藕筋,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年梳码,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了隐圾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伍掀。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖暇藏,靈堂內(nèi)的尸體忽然破棺而出蜜笤,到底是詐尸還是另有隱情,我是刑警寧澤盐碱,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布把兔,位于F島的核電站,受9級(jí)特大地震影響甸各,放射性物質(zhì)發(fā)生泄漏垛贤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一趣倾、第九天 我趴在偏房一處隱蔽的房頂上張望聘惦。 院中可真熱鬧,春花似錦儒恋、人聲如沸善绎。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至略板,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間剂跟,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工酣藻, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留曹洽,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓辽剧,卻偏偏與公主長(zhǎng)得像送淆,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子怕轿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

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

  • http://www.reibang.com/p/7e3e2b898143這是上次寫(xiě)的泛型偷崩,當(dāng)時(shí)其實(shí)還是一知半解。...
    Richardo92閱讀 391評(píng)論 0 1
  • 一、基本數(shù)據(jù)類型 注釋 單行注釋:// 區(qū)域注釋:/* */ 文檔注釋:/** */ 數(shù)值 對(duì)于byte類型而言...
    龍貓小爺閱讀 4,268評(píng)論 0 16
  • 泛型是Java SE1.5的新特性放吩,泛型的本質(zhì)是參數(shù)化類型智听,也就是說(shuō)所操作的數(shù)據(jù)類型被指定為一個(gè)參數(shù)。這種參數(shù)類型...
    流氓劍客閱讀 262評(píng)論 0 0
  • 在經(jīng)過(guò)一次沒(méi)有準(zhǔn)備的面試后渡紫,發(fā)現(xiàn)自己雖然寫(xiě)了兩年的android代碼到推,基礎(chǔ)知識(shí)卻忘的差不多了。這是程序員的大忌惕澎,沒(méi)...
    猿來(lái)如癡閱讀 2,849評(píng)論 3 10
  • 2010.9我(右3)和初中同學(xué)(右2) 一起考上了 北方的大學(xué)莉测,正在前往城市-哈爾濱。高中好友們都過(guò)來(lái)機(jī)場(chǎng)相送唧喉。...
    愛(ài)嬌閱讀 205評(píng)論 0 2