更新時(shí)間:2021-11-05 11:35:49 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1280次
小編給大家java的集合工具類:Collections,java提供了一個(gè)操作Set、List和Map等集合的工具類:Collections,該工具類里面提供了大量方法對集合元素進(jìn)行排序、查詢和修改等操作,還提供了對集合對象實(shí)現(xiàn)同步控制等方法。
排序操作:
|
修飾符 |
返回值 |
類型方法(形參) |
說明 |
|---|---|---|---|
| Static | Void | Reverse(List list) | 反轉(zhuǎn)指定列表中元素的順序 |
| Static | Void | Shuffle(List list) | 使用默認(rèn)隨機(jī)源對指定列表進(jìn)行置換 |
| Static | Void | Sort(List list) | 根據(jù)指定比較器產(chǎn)生的順序?qū)χ付斜磉M(jìn)行排序 |
| Static | Void | Sort(list list,Comparator c) | 根據(jù)指定比較器產(chǎn)生的順序?qū)χ付斜磉M(jìn)行排序 |
| Static | Void | Swap(List list,int distance) | 根據(jù)指定的距離輪換指定列表中的元素 |
下面是常用排序方法的代碼圖1:


下面方法的說明:binarySearch:使用二分搜素法搜素指定列表,以獲得指定對象;max:根據(jù)元素的自然順序或指定比較器產(chǎn)生的順序,返回給定collection的最大元素;min:根據(jù)元素的自然順序或指定比較器產(chǎn)生的順序,返回給定 collection 的 小元素;fill:使用指定元素替換指定列表中的所有元素;frequency:返回指定collection中等于指定對象的元素?cái)?shù);indexOfSubList:返回指定源列表中最后一次出現(xiàn)或最后一次出現(xiàn)指定目標(biāo)列表的起始位置;如果沒有出現(xiàn)這樣的列表,則返回-1;replaceAll:使用另一個(gè)值替換列表中出現(xiàn)的所有某一指定值;見代碼圖2:


Collections類中提供了多個(gè)synchronized……()方法,這些方法可以將指定集合包裝成線程同步(線程安全)的集合,從而可以解決多線程并發(fā)訪問集合時(shí)的線程安全問題。Java中常用的集合框架中的實(shí)現(xiàn)類:ArrayList、Linkedlist、 HashSet、TreeSet、HashMap和TreeMap都是線程不安全的。如果有多個(gè)線程訪問它們,而且有超過一個(gè)的線程試圖修改它們,則存在線程安全的問題。Collections提供了多個(gè)類方法可以吧它們包裝成線程同步的集合。見代碼圖3:

List,Set,Map是集合體系中最主要的三個(gè)接口,List和Set是繼承Collection接口,Map屬于集合系統(tǒng)但與collection接口不同。
Comparator和comparable的區(qū)別:comparator定義在類的外部,此時(shí)我們的類的結(jié)構(gòu)不需要有任何變化,從小到大:o1-o2從大到?。簅2-o1;comparable定義在類的內(nèi)部,耦合性較強(qiáng)從小到大::thiso 從大到小:othis
線程安全的就是同步的,不安全的就是不同步的;不同步的運(yùn)行速度要比同步的塊。
如果大家想了解更多相關(guān)知識(shí),不妨來關(guān)注一下動(dòng)力節(jié)點(diǎn)的Java開發(fā)工具,里面有更多的工具介紹供大家學(xué)習(xí),希望對大家能夠有所幫助。