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

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

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

    seaairland

     

    Commons-collection

    Commons項目理解
    ??????? 在java項目中有很多公用的算法實現(xiàn)和工具類
    ??????? jarkata項目組把這些公用的東西作為開源項目加以實現(xiàn)
    ??????? 以后在項目使用中就可以統(tǒng)一算法,不必寫象StringUtil或者DateHelper之類的工具類了
    ??????? 很多算法也不必再查文檔,熬夜寫個通宵了,:)
    ??????? 最近需要針對collection作一些擴展,自己寫了半天,才發(fā)現(xiàn)commons-collection里面已經(jīng)有了實現(xiàn)
    ??????? 而且比自己寫的好更完善,效率更高
    ??????? 索性來研究一下這個項目,因為很多開源項目也使用它
    ??????? 以后看開源項目代碼的時候也就不用那么費力了
    ???????
    概述
    ??????? 首先這個包是基于JDK1.2開發(fā)的,所以以后在調(diào)用的時候就不用關(guān)心JDK版本的問題
    ??????? 其二這個包在大部分的開源項目中使用,已經(jīng)成為事實上的行業(yè)集合類處理標準
    特性描述
    ??????? Bag集合接口,用于在集合中保存一個對象的多次拷貝
    ??????? Buffer接口,用于處理FIFO等定義好移除順序的結(jié)合類
    ??????? BidiMap接口,用于通過value查找key
    ??????? MapIterator,這個就不用多說了,以后就不用使用map.keyset.iterator去處理map循環(huán)了
    ??????? 型別檢查裝飾,其實就是可以創(chuàng)建一個具有指定型別的集合類
    ??????????????? 比如定義了一個整型的list,就不能再向這個list里面放String,否則會拋出異常
    ??????? 轉(zhuǎn)換修飾,就是在向集合中放入對象時,可以將對象轉(zhuǎn)換為需要的類型的對象再放入集合中
    ??????? 組合集合,一個非常好的概念,就是把多個集合當一個集合去使用
    ??????? 排序Map和Set,保持集合的加入順序
    ??????? Identity Map,這個Map中使用==而不是equal()方法去比較對象

    ??????? * Reference map that allows keys and/or values to be garbage collected under close control
    ??????? 更多的比較實現(xiàn)
    ??????? 更多的迭代實現(xiàn)
    ??????? 將數(shù)組或枚舉類型裝換到集合類中,非常好用的功能,畢竟array的功能有限
    ???????
    ??????? * Utilities to test or create typical set-theory properties of collections such as union, intersection, and closure

    個人對于一些類的體會
    ??????? 第一個就是TypedList(還有map,set都一樣)
    ??????? 可以創(chuàng)建一個String的List,或者一個只能放入指定Class的List,避免編程時候的誤寫
    ??????? java編程思想中提到過創(chuàng)建指定型別的集合的問題,不過使用這個類就不用那么麻煩了

    ??????? CollectionUtils
    ??????????????? 針對集合進行與/并/判斷是否包含/等于等工具方法
    ??????????????? 查找一個集合中某個對象出現(xiàn)的數(shù)量
    ??????????????? 查找(或過濾)一個集合中某種class的子集合,或者計算數(shù)量
    ??????????????? 將集合中的對象進行轉(zhuǎn)換處理
    ??????????????? 將數(shù)組或枚舉對象放入集合中
    ??????????????? 提供針對所有集合類的index,size,get等方法
    ??????????????? 提供數(shù)組翻轉(zhuǎn)方法
    ??????????????? 提供集合的同步修飾
    ??????????????????????? 比如HashMap本身是不支持同步的,但這個類提供了一個同步修飾
    ??????????????????????? 以后再使用經(jīng)過修飾后的HashMap時就不用考慮同步的問題了
    ??????????????? 提供禁止修改集合的工具方法
    ??????? 同CollectionUtils一樣還有相應(yīng)的ListUtils,SetUtils等工具類
    ??????????????? 這些工具類提供的方法基本都出現(xiàn)在CollectionUtils中

    ??????? ArrayStack
    ??????????????? 一個繼承自ArrayList的Stack實現(xiàn)
    ??????? BeanMap
    ??????????????? 一個用于分析javaBean的Map容器,個人感覺用于測試比較方便
    ??????????????? 因為beanUtils類也可以做這個類的事情,這個類方便的是讀取所有屬性并顯示
    ??????? BidiMap
    ??????????????? 就是一個可以通過value查找key的Map
    ??????????????? 限制:添加對象時,value不能相同
    ??????????????? 因為這個類還有一個方法就是創(chuàng)建一個反向Map,把value作為key,把key作為value再創(chuàng)建一個Map
    ??????? BoundedCollection接口
    ??????????????? 所有實現(xiàn)此接口的集合均被限制了集合大小,不過超過約束的大小
    ??????? Buffer接口
    ??????????????? 非常好的一個接口,實現(xiàn)了按照指定順序移除對象
    ??????????????? 可以用來實現(xiàn)FIFO,LIFO等算法
    ??????????????? 也可以通過Comprator來構(gòu)造,指定確定的移除算法
    ??????? Ordered**接口
    ??????????????? 用來實現(xiàn)集合排序
    ??????? Predicate接口(斷言)
    ??????????????? 用來驗證或過濾對象
    ??????? Transformer接口
    ??????????????? 用來把一個對象轉(zhuǎn)換成另為一個對象
    ??????? Closure接口
    ??????????????? 用來封閉一段代碼,針對對象進行指定的處理
    ??????? Unmodifiable接口
    ??????????????? 所以實現(xiàn)(或包含了)此接口的對象均不可以改變

    ??????? ComparatorUtils類
    ??????????????? 實現(xiàn)了各種比較
    ??????????????? 布爾值比較實現(xiàn)
    ??????????????? null判斷比較
    ??????????????? 比較鏈的實現(xiàn)
    ??????????????? 獲取min,max對象
    ??????? AbstractDualBidiMap
    ??????????????? 一個包含了兩個bidiMap的抽象類
    ??????????????? 因為bidiMap可以做雙向查找
    ??????????????? 繼承AbstractDualBidiMap后,內(nèi)部的兩個map一個針對key排序,一個針對value排序
    ??????????????? 可以加快訪問速度
    ??????? EnumerationUtils
    ??????????????? 包含了toList()方法,可以簡化代碼
    ??????? ExtendedProperties 比較好玩
    ??????????????? 提供了增強的properties處理
    ??????????????? 處理多行
    ??????????????? 處理多個相同的聲明
    ??????? Fast***
    ??????????????? 提供了在多線程中針對集合的快速訪問
    ??????????????? 當進行只讀操作時,不進行同步處理
    ??????????????? 當進行寫操作時
    ??????????????????????? 克隆整個集合
    ??????????????????????? 針對克隆執(zhí)行修改
    ??????????????????????? 使用克隆替換現(xiàn)有對象
    ??????? MultiHashMap
    ??????????????? 實現(xiàn)了多key的map
    ??????????????? 當get時返回list對象
    ??????? StaticBucketMap ***********(高效)
    ??????????????? 是一個非常高效的Map, get, put, remove 和 containsKey? 操作都被進行了優(yōu)化
    ??????????????? 這個Map里面有多個Buck(桶)用于存儲數(shù)據(jù)
    ??????????????? 這樣在多線程中取數(shù)據(jù)的使用,是從不同的桶中取,真正實現(xiàn)了同步機制
    ??????????????? 當然,在進行批量操作時無法保證原子性,要注意這一點

    posted on 2006-05-04 12:15 chenhui 閱讀(746) 評論(0)  編輯  收藏 所屬分類: 好文收集Jakarta Commons

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    介紹 IOC

    友情鏈接

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 一级特黄aa毛片免费观看| 免费观看四虎精品成人| 91禁漫免费进入| 亚洲福利在线视频| 国产激情免费视频在线观看| 久久亚洲精品无码播放| 一级日本高清视频免费观看| 亚洲精品无码专区久久同性男| 一级毛片在线免费播放| 亚洲人成网站色在线入口| japanese色国产在线看免费| 亚洲综合色区在线观看| 一级有奶水毛片免费看| 亚洲人成电影亚洲人成9999网| 久久久精品免费视频| 亚洲一区免费视频| 黄色成人网站免费无码av| 亚洲日韩精品无码专区加勒比 | 免费一区二区无码东京热| 精品国产_亚洲人成在线高清| 免费的全黄一级录像带| 亚洲视频在线观看不卡| 在线a毛片免费视频观看| 色妞www精品视频免费看| 亚洲精品无码精品mV在线观看| 99热免费在线观看| 亚洲乱亚洲乱妇无码| 亚洲日韩中文字幕日韩在线 | 亚洲三级在线观看| 免费看小12萝裸体视频国产| 成人毛片100免费观看| 亚洲日本香蕉视频| 国产成人高清精品免费软件| 中文无码日韩欧免费视频| 亚洲精品第一国产综合精品| 日韩视频在线免费| 久久er国产精品免费观看2| ass亚洲**毛茸茸pics| 亚洲综合久久夜AV | 日韩欧毛片免费视频| 一进一出60分钟免费视频|