常用jar包之commons-collection使用

來源:互聯網
上載者:User

Commons Collections,又是一個重量級的東西,為Java標準的Collections API提供了相當好的補充。我不知道其他人,就我自己而言,讓我用java.util.Collection及其子類,加上java.util.Collections類提供的操作方法,處理一些簡單的資料結構問題還可以,稍微複雜一點的就覺得有點頭痛,很多細節的地方需要我插入這樣那樣的小邏輯,或者感覺它太死板,不夠靈活,再或者確實有點晦澀吧。再說了,如果我只是處理一般的資料結構問題,為什麼不自己用數組或者自訂的鏈表來做,再加上Jakarta Commons的Lang提供的ArrayUtils、StringUtils等,已經基本夠了,效能可以保證,那麼還要這個Collections API幹嘛。當然,說到這裡有些偏激了,Collections當然有它存在的道理,能夠把常用的資料結構歸納起來,以通用的方式去維護和訪問,這應該說是一種進步,但是用起來似乎不夠友好。這個時候我就會想,如果Java比現在做得更好用些,或者有一套第三方的API把我的這些需求抽象出來,實現了,該多好。Commons Collections就是這樣一套API。

 

我們先來瀏覽一下它的包結構。一共是12個:

 

org.apache.commons.collections – Commons Collections自訂的一組公用的介面和工具類

org.apache.commons.collections.bag – 實現Bag介面的一組類

org.apache.commons.collections.bidimap – 實現BidiMap系列介面的一組類

org.apache.commons.collections.buffer – 實現Buffer介面的一組類

org.apache.commons.collections.collection – 實現java.util.Collection介面的一組類

org.apache.commons.collections.comparators – 實現java.util.Comparator介面的一組類

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

org.apache.commons.collections.iterators – 實現java.util.Iterator介面的一組類

org.apache.commons.collections.keyvalue – 實現集合和鍵/值對應相關的一組類

org.apache.commons.collections.list – 實現java.util.List介面的一組類

org.apache.commons.collections.map – 實現Map系列介面的一組類

org.apache.commons.collections.set – 實現Set系列介面的一組類

 

過Java Collections API的朋友大概或多或少會同意我如下的劃分:在Java的Collections API中,不狹義的區分文法上的介面和類,把它們都看作是類的話,大致我們可以發現三種主要的類別:

 

1- 容器類:如Collection、List、Map等,用於存放對象和進行簡單操作的;

2- 操作類:如Collections、Arrays等,用於對容器類的執行個體進行相對複雜操作如排序等;

3- 輔助類:如Iterator、Comparator等,用於輔助操作類以及外部調用代碼實現對容器類的操作,所謂輔助,概括而通俗的來講,就是這些類提供一種演算法,你給它一個對象或者一組對象,或者僅僅是按一定的規則調用它,它給你一個運算後的答案,協助你正確處理容器物件。比如Iterator會告訴你容器中下一個對象有沒有、是什麼,而Comparator將對象大小/先後次序的演算法邏輯獨立出來。

 

同樣,Jakarta Commons Collections我們細細看來,也能夠找出類似的劃分:

 

1- 作為容器類的補充,我們可以找到Bag、Buffer、BidiMap、OrderedMap等等;

2- 作為操作類的補充,我們可以找到CollectionUtils、IteratorUtils、ListUtils、SetUtils等等;

3- 作為輔助類的補充,我們可以找到MapIterator、Closure、Predicate、Transformer等等;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.