<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Vincent.Chan‘s Blog

    常用鏈接

    統(tǒng)計(jì)

    積分與排名

    網(wǎng)站

    最新評(píng)論

    [Jakarta Commons筆記](méi) Commons Collections

    Commons Collections,又是一個(gè)重量級(jí)的東西,為Java標(biāo)準(zhǔn)的Collections API提供了相當(dāng)好的補(bǔ)充。我不知道其他人,就我自己而言,讓我用java.util.Collection及其子類,加上java.util.Collections類 提供的操作方法,處理一些簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)問(wèn)題還可以,稍微復(fù)雜一點(diǎn)的就覺(jué)得有點(diǎn)頭痛,很多細(xì)節(jié)的地方需要我插入這樣那樣的小邏輯,或者感覺(jué)它太死板,不夠 靈活,再或者確實(shí)有點(diǎn)晦澀吧。再說(shuō)了,如果我只是處理一般的數(shù)據(jù)結(jié)構(gòu)問(wèn)題,為什么不自己用數(shù)組或者自定義的鏈表來(lái)做,再加上Jakarta CommonsLang提供的ArrayUtilsStringUtils等,已經(jīng)基本夠了,性能可以保證,那么還要這個(gè)Collections API干嘛。當(dāng)然,說(shuō)到這里有些偏激了,Collections當(dāng)然有它存在的道理,能夠把常用的數(shù)據(jù)結(jié)構(gòu)歸納起來(lái),以通用的方式去維護(hù)和訪問(wèn),這應(yīng)該說(shuō)是一種進(jìn)步,但是用起來(lái)似乎不夠友好。這個(gè)時(shí)候我就會(huì)想,如果Java比現(xiàn)在做得更好用些,或者有一套第三方的API把我的這些需求抽象出來(lái),實(shí)現(xiàn)了,該多好。Commons Collections就是這樣一套API

     

    在這里可以找到下載鏈接:(binarysrc都有)

    http://jakarta.apache.org/site/downloads/downloads_commons-collections.cgi

     

    目前Commons Collection發(fā)布的最新版本是3.1。建議下載這個(gè)3.1版本,頁(yè)面上出現(xiàn)的2.1.1是針對(duì)2.1不兼容3.0而發(fā)布的升級(jí)維護(hù)版。

     

    我們先來(lái)瀏覽一下它的包結(jié)構(gòu)。一共是12個(gè):

     

    org.apache.commons.collections – Commons Collections自定義的一組公用的接口和工具類

    org.apache.commons.collections.bag – 實(shí)現(xiàn)Bag接口的一組類

    org.apache.commons.collections.bidimap – 實(shí)現(xiàn)BidiMap系列接口的一組類

    org.apache.commons.collections.buffer – 實(shí)現(xiàn)Buffer接口的一組類

    org.apache.commons.collections.collection – 實(shí)現(xiàn)java.util.Collection接口的一組類

    org.apache.commons.collections.comparators – 實(shí)現(xiàn)java.util.Comparator接口的一組類

    org.apache.commons.collections.functors – Commons Collections自定義的一組功能類

    org.apache.commons.collections.iterators – 實(shí)現(xiàn)java.util.Iterator接口的一組類

    org.apache.commons.collections.keyvalue – 實(shí)現(xiàn)集合和鍵/值映射相關(guān)的一組類

    org.apache.commons.collections.list – 實(shí)現(xiàn)java.util.List接口的一組類

    org.apache.commons.collections.map – 實(shí)現(xiàn)Map系列接口的一組類

    org.apache.commons.collections.set – 實(shí)現(xiàn)Set系列接口的一組類

     

    用過(guò)Java Collections API的朋友大概或多或少會(huì)同意我如下的劃分:在JavaCollections API中,不狹義的區(qū)分語(yǔ)法上的接口和類,把它們都看作是類的話,大致我們可以發(fā)現(xiàn)三種主要的類別:

     

    1- 容器類:如CollectionListMap等,用于存放對(duì)象和進(jìn)行簡(jiǎn)單操作的;

    2- 操作類:如CollectionsArrays等,用于對(duì)容器類的實(shí)例進(jìn)行相對(duì)復(fù)雜操作如排序等;

    3- 輔助類:如IteratorComparator等,用于輔助操作類以及外部調(diào)用代碼實(shí)現(xiàn)對(duì)容器類的操作,所謂輔助,概括而通俗的來(lái)講,就是這些類提供一種算法,你給它一個(gè)對(duì)象或者一組對(duì)象,或者僅僅是按一定的規(guī)則調(diào)用它,它給你一個(gè)運(yùn)算后的答案,幫助你正確處理容器對(duì)象。比如Iterator會(huì)告訴你容器中下一個(gè)對(duì)象有沒(méi)有、是什么,而Comparator將對(duì)象大小/先后次序的算法邏輯獨(dú)立出來(lái)。

     

    同樣,Jakarta Commons Collections我們細(xì)細(xì)看來(lái),也能夠找出類似的劃分:

     

    1- 作為容器類的補(bǔ)充,我們可以找到BagBufferBidiMapOrderedMap等等;

    2- 作為操作類的補(bǔ)充,我們可以找到CollectionUtilsIteratorUtilsListUtilsSetUtils等等;

    3- 作為輔助類的補(bǔ)充,我們可以找到MapIteratorClosurePredicateTransformer等等;

     

    對(duì)于這樣的一個(gè)大包,當(dāng)然不可能一個(gè)類一個(gè)類的講了,找一些常用的和有用的當(dāng)做接下來(lái)討論的話題吧。大概列個(gè)清單:

     

    Bag

    HashBag

    BagUtils

     

    Buffer

    BlockingBuffer

    BoundedFifoBuffer

    PriorityBuffer

    BufferUtils

     

    MultiMap

    BidiMap

    CaseInsensitiveMap

    LazyMap

    MapUtils

     

    TypedCollection

    CollectionUtils

     

    ReverseComparator

    ComparatorChain

    NullComparator

    FixedOrderComparator

    ComparatorUtils

     

    Predicate

    AndPredicate

    OrPredicate

    AllPredicate

    OnePredicate

    NonePredicate

    PredicateUtils

     

    Transformer

    ChainedTransformer

    SwitchTransformer

    TransformerUtils

     

    Closure

    ChainedClosure

    IfClosure

    WhileClosure

    ClosureUtils

     

    LoopingIterator

    ArrayListIterator

    FilterIterator

    UniqueFilterIterator

    IteratorUtils

     

    總共9組,在接下來(lái)的筆記中我們一起慢慢的看。

     

    posted on 2006-03-10 23:11 Vincent.Chen 閱讀(131) 評(píng)論(0)  編輯  收藏 所屬分類: Java

    主站蜘蛛池模板: 亚洲最大免费视频网| 亚洲欧美日韩久久精品| 久久亚洲精品无码| 亚洲日韩小电影在线观看| 国产亚洲成归v人片在线观看 | 亚洲精品偷拍视频免费观看| 免费国产a理论片| 一个人看的www视频免费在线观看| 美女一级毛片免费观看| 免费一级特黄特色大片| 一个人看的免费视频www在线高清动漫 | 亚洲AV无码一区二区三区国产| 国产极品美女高潮抽搐免费网站| 国产大片免费观看中文字幕| 免费成人av电影| 亚洲人成图片小说网站| 无码乱人伦一区二区亚洲一| 亚洲精品在线免费观看视频| 亚洲视频无码高清在线| 亚洲av无码专区首页| 手机永久免费的AV在线电影网| 国产视频精品免费视频| 在线涩涩免费观看国产精品 | 免费在线观看一区| 99热在线日韩精品免费| 久久免费视频99| 国产成在线观看免费视频| 免费无码黄网站在线观看| 亚洲国产午夜中文字幕精品黄网站 | 波多野结衣中文字幕免费视频| 好大好深好猛好爽视频免费| 无码不卡亚洲成?人片| 亚洲亚洲人成综合网络| 亚洲网站在线播放| 亚洲精品亚洲人成在线| 一区二区三区免费视频观看 | 免费精品国产自产拍在线观看| 花蝴蝶免费视频在线观看高清版 | 污网站在线观看免费| 日韩电影免费观看| 成年在线观看免费人视频草莓|