??? 為了更好的支持枚舉類型,java.util中添加了兩個新類:EnumMap和EnumSet。使用它們可以更高效的操作枚舉類型。下面我一一介紹給你: ??? EnumMap 是專門為枚舉類型量身定做的Map實現(xiàn)。雖然使用其它的Map實現(xiàn)(如HashMap)也能完成枚舉類型實例到值得映射,但是使用EnumMap會更加高效:它只能接收同一枚舉類型的實例作為鍵值,并且由于枚舉類型實例的數(shù)量相對固定并且有限,所以EnumMap使用數(shù)組來存放與枚舉類型對應(yīng)的值。這使得EnumMap的效率非常高。 ??? 提示: EnumMap在內(nèi)部使用枚舉類型的ordinal()得到當(dāng)前實例的聲明次序,并使用這個次序維護枚舉類型實例對應(yīng)值在數(shù)組的位置。 ??? 下面是使用EnumMap的一個代碼示例。枚舉類型DataBaseType里存放了現(xiàn)在支持的所有數(shù)據(jù)庫類型。針對不同的數(shù)據(jù)庫,一些數(shù)據(jù)庫相關(guān)的方法需要返回不一樣的值,示例中g(shù)etURL就是一個。
??? 在實際使用中,EnumMap對象urls往往是由外部負(fù)責(zé)整個應(yīng)用初始化的代碼來填充的。這里為了演示方便,類自己做了內(nèi)容填充。 ??? 像例子中那樣,使用EnumMap可以很方便的為枚舉類型在不同的環(huán)境中綁定到不同的值上。如:例子中g(shù)etURL綁定到URL上,在其它的代碼中可能又被綁定到數(shù)據(jù)庫驅(qū)動上去。 ??? EnumSet 是枚舉類型的高性能Set實現(xiàn)。它要求放入它的枚舉常量必須屬于同一枚舉類型。EnumSet提供了許多工廠方法以便于初始化,見下表: ??? EnumSet作為Set接口實現(xiàn),它支持對包含的枚舉常量的遍歷:
|
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
