Java —— 集合工具類(Collections 類)
【概述】
Collections 類是一個操作 List、Set、Map 等集合的工具類,其提供了一系列靜態方法對集合元素進行排序、查詢、修改等操作,還提供了對集合物件設定不可變、對集合物件實現同步控制等方法。
【排序操作】
1.reverse(List list) 方法
reverse(List list) 方法用於反轉 List 內元素順序
List list=new ArrayList();
list.add(123);
list.add(45);
list.add(111);
list.add(12);
System.out.println(list);//結果:[123, 45, 111, 12]
Collections.reverse(list);
System.out.println(list);//結果:[12, 111, 45, 123]
2.shuffle(List list) 方法
shuffle(List list) 方法用於對 List 內元素進行隨機排序
List list=new ArrayList();
list.add(123);
list.add(45);
list.add(111);
list.add(12);
System.out.println(list);//結果:[123, 45, 111, 12]
Collections.shuffle(list);
System.out.println(list);//結果:[111, 45, 12, 123] 每次結果都不同
3.sort(List list) 方法
sort(List list) 方法根據元素的自然順序對指定 List 集合元素按升序排序
List list=new ArrayList();
list.add(123);
list.add(45);
list.add(111);
list.add(12);
System.out.println(list);//結果:[123, 45, 111, 12]
Collections.sort(list);
System.out.println(list);//結果:[12, 45, 111, 123]
4.sort(List list,Comparator) 方法
sort(List list,Comparator) 方法根據指定的 Comparator 產生的順序對 List 集合元素進行排序
List list=new ArrayList();
list.add(123);
list.add(45);
list.add(111);
list.add(12);
System.out.println(list);//結果為:[123, 45, 111, 12]
Collections.sort(list,new Comparator<Integer>() {
@Override
public int compare(Integer a,Integer b) {
if(a<b)
return 1;
else if(a>b)
return -1;
else
return 0;
}
});
System.out.println(list);//結果為:[123, 111, 45, 12]
5.swap(List list,int a,int b) 方法
swap(List list,int a,int b) 方法將指定 list 集合中的 i 處元素和 j 處元素進行交換
List list=new ArrayList();
list.add(123);
list.add(45);
list.add(111);
list.add(12);
System.out.println(list);//結果:[123, 45, 111, 12]
Collections.swap(list,0,2);
System.out.println(list);//結果:[111, 45, 123, 12]
【查詢替換操作】
1.max(Collection) 方法
max(Collection) 方法根據元素自然順序,返回給定集合中的最大元素
List list=new ArrayList();
list.add(123);
list.add(45);
list.add(111);
list.add(12);
Object obj=Collections.max(list);
System.out.println(obj);//結果:123
除 max(Collection) 方法外,還有 max(Collection,Comparator) 方法根據 Comparator 指定的順序,返回給定集合中的最大元素
2.min(Collection) 方法
min(Collection) 方法根據元素自然順序,返回給定集合中的最小元素
List list=new ArrayList();
list.add(123);
list.add(45);
list.add(111);
list.add(12);
Object obj=Collections.min(list);
System.out.println(obj);//結果:12
除 min(Collection) 方法外,min(Collecttion,Comparator) 方法根據 Comparator 指定的順序,返回給定集合中的最小元素
3.frequency(Collection,Object) 方法
frequency(Collection,Object) 方法返回指定集合中指定元素出現的次數
List list=new ArrayList();
list.add(123);
list.add(45);
list.add(111);
list.add(12);
int cnt=Collections.frequency(list,123);
System.out.println(cnt);//結果:1
4.copy(List dest,List src) 方法
copy(List dest,List src) 方法將 src 中的內容複製到 dest 中,前提是 src 的長度要大於 dest 的長度
List list=new ArrayList();
list.add(123);
list.add(45);
list.add(111);
list.add(12);
List newList=new ArrayList();
newList.add(1);
newList.add(2);
newList.add(3);
Collections.copy(list,newList);
System.out.println(list);//結果:[1, 2, 3, 12]
System.out.println(newList);//結果:[1, 2, 3]
5.replaceAll(List list,Object oldVal,Object newVal) 方法
replaceAll(List list,Object oldVal,Object newVal) 方法使用新值 newVal 替換當前 List 物件的所有舊值 oldVal
List list=new ArrayList();
list.add(1);
list.add(2);
list.add(3);
list.add(1);
list.add(2);
list.add(2);
System.out.println(list);//結果:[1, 2, 3, 1, 2, 2]
Collections.replaceAll(list,2,22);
System.out.println(list);//結果:[1, 22, 3, 1, 22, 22]
【同步控制】
Collections 類中提供了多個 synchronizedXXX() 方法,該方法可使將指定集合包裝成執行緒同步的集合,從而解決多執行緒併發訪問集合時的執行緒安全問題。
例如:
List list=new ArrayList();
list.add(1);
list.add(2);
list.add(3);
list.add(1);
list.add(2);
list.add(2);
List newList=Collections.synchronizedList(list);//執行緒安全
相關文章
- 7、Collections集合工具類
- Java 集合類——Collections(1)Java
- Java 集合類——Collections(3)Java
- Java 集合類——Collections(2)Java
- 工具類——自定義Collections集合方法
- Java之Collections工具類Java
- Collections工具類
- 6、Collections工具類
- Java 常用工具類 Collections 原始碼分析Java原始碼
- JavaSE基礎:Collections工具類Java
- 集合類【Java】Java
- Collections工具類,可以使用collections工具類對程式碼中的list進行分組
- java 所有的集合類以及Apache的集合類???JavaApache
- Java集合類初探Java
- Java集合類——MapJava
- Java集合類綜合Java
- 用鬥地主的例項學會使用java Collections工具類Java
- Java集合類的概述Java
- java集合類介紹Java
- Java集合類詳解Java
- Java集合類原始碼Java原始碼
- [Guava] Google Guava 集合工具類GuavaGo
- Java 的可變引數與 Collections 類Java
- Java 集合類入門篇Java
- 【Java原始碼】集合類-ArrayDequeJava原始碼
- 常用Java集合類總結Java
- Java集合類初步瞭解Java
- Java集合類知識整理Java
- java集合類——Stack棧類與Queue佇列Java佇列
- 【Java學習筆記】Collections集合Java筆記
- java http 工具類JavaHTTP
- java Redis工具類JavaRedis
- Java 工具類庫Java
- java工具類之編碼轉換工具類Java
- java學習(七) —— API集合類JavaAPI
- BAT面試必備——Java 集合類BAT面試Java
- Java集合類學習總結Java
- Java集合類:AbstractCollection原始碼解析Java原始碼