1、Collections工具類介紹
- Collections 是一個操作 Set、List 和 Map 等集合的工具類
- Collections 中提供了一系列靜態的方法對集合元素進行排序、查詢和修改等操作
2、排序操作(均為static方法)
-
reverse(List):反轉List 中元素的順序
-
shuffle(LIst):對List 集合元素進行隨機排序
-
sort(List):根據元素的自然順序對指定List 集合元素按升序排序
-
sort(List,comparator):根據指定的Comparator 產生的順序對List 集合元素進行排序
-
swap(List,int,int):將指定list 集合中的 i 處元素和 j 處元素進行交換。
package com.hspedu.collections_; import java.util.*; @SuppressWarnings({"all"}) public class Collections_ { public static void main(String[] args) { //建立ArrayList 集合,用於測試 List list = new ArrayList(); list.add("tom"); list.add("smith"); list.add("king"); list.add("milan"); System.out.println(list); Collections.reverse(list); System.out.println(list); Collections.shuffle(list); System.out.println(list); Collections.sort(list); System.out.println(list); Collections.sort(list, new Comparator() { @Override public int compare(Object o1, Object o2) { return ((String) o1).length() - ((String) o2).length(); } }); System.out.println(list); Collections.swap(list,0,1); System.out.println(list); } } /* 執行結果: [tom, smith, king, milan] [milan, king, smith, tom] [milan, smith, king, tom] [king, milan, smith, tom] [tom, king, milan, smith] [king, tom, milan, smith] */
3、查詢、替換
- Object max(Collection): 根據元素的自然順序,返回給定集合中的最大元素
- Object max(Collection, Comparator) :根據Comparator 指定的順序,返回給定集合中的最大元素
- Object min(collection)
- Object min(Collection, Comparator)
- int frequency(Collection, Object) :返回指定集合中指定元素的出現次數
- void copy(List dest, List src):將src中的內容複製到dest中
- boolean replaceAll(List list, Object oldVal, Object newVal):使用新值替換List 物件的所有舊值
package com.hspedu.collections_;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
@SuppressWarnings({"all"})
public class Collections_1 {
public static void main(String[] args) {
//建立ArrayList 集合,用於測試
List list = new ArrayList();
list.add("tom");
list.add("tom");
list.add("smith");
list.add("king");
list.add("milan");
System.out.println(list);
System.out.println(Collections.max(list));
Object maxObject = Collections.max(list, new Comparator() {
@Override
public int compare(Object o1, Object o2) {
return ((String) o1).length() - ((String) o2).length();
}
});
System.out.println(maxObject);
System.out.println("tom 出現的次數= " + Collections.frequency(list,"tom"));
ArrayList dest = new ArrayList();
//為了完成一個完整複製,我們需要先給dest 賦值,大小和list.size()一樣
for (int i = 0; i < list.size(); i++) {
dest.add("");
}
Collections.copy(dest,list);
System.out.println("dest= " + dest);
Collections.replaceAll(list,"tom","湯姆");
System.out.println(list);
}
}
/*
執行結果:
[tom, tom, smith, king, milan]
tom
smith
tom 出現的次數= 2
dest= [tom, tom, smith, king, milan]
[湯姆, 湯姆, smith, king, milan]
*/