項目代碼
https://github.com/yinhai1114/Java_Learning_Code/blob/main/IDEA_Chapter14/src/com/yinhai/Collections_.java
目錄
項目代碼
Collections工具類
一、Collections工具類介紹
1.排序操作: (均為static方法)
2.查找、替換
在開發(fā)中,選擇什么集合實現(xiàn)類,主要取決于業(yè)務(wù)操作特點,然后根據(jù)集合實現(xiàn)類特性進行
選擇,分析如下:
0.先判斷存儲的類型(一組對象[單列]或一組鍵值對[雙列])
1.一組對象: Collection接口(單列)
? ? ? ? 1)允許重復(fù): List
????????????????增刪多: LinkedList [底層維護了一一個雙向鏈表]
????????????????改查多: ArrayList [底層維護Object類型的可變數(shù)組]
? ? ? ? 2)不允許重復(fù): Set
? ? ? ? ? ? ? ?無序: HashSet [底層是HashMap,維護了一個哈希表即(數(shù)組+鏈表+紅黑樹)]
????????????????排序: TreeSet
? ? ? ? ? ? ? ? 插入和取出順序一致: LinkedHashSet , 維護數(shù)組+雙向鏈表
2.一組鍵值對: Map(雙列)
????????????????鍵無序: HashMap [底層是:哈希表jdk7: 數(shù)組+鏈表,jdk8: 數(shù)組+鏈表+紅黑樹]
????????????????鍵排序: TreeMap
????????????????鍵插入和取出順序一致: LinkedHashMap
????????????????讀取文件Properties?
Collections工具類
一、Collections工具類介紹
1.Collections是一個操作Set、List 和Map等集合的工具類
2.Collections中提供了一系列靜態(tài)的方法對集合元素進行排序、查詢和修改等操作
1.排序操作: (均為static方法)
????????1) reverse(List):反轉(zhuǎn)List中元素的順序
????????2) shuffle(List):對List集合元素進行隨機排序
????????3) sort(List):根據(jù)元素的自然順序?qū)χ付↙ist 集合元素按升序排序
????????4) sort(List, Comparator): 根據(jù)指定的Comparator產(chǎn)生的順序?qū)ist集合元素排序
????????5) swap(List, int, int): 將指定list集合中的i處元素和j處元素進行交換
2.查找、替換
1) Object max(Collection):根據(jù)元素的自然順序,返回給定集合中的最大元素
2) Object max(Collection, Comparator): 根據(jù)Comparator指定的順序,返回給定集合中的最大元素
3) Object min(Collection)
4) Object min(Collection, Comparator)
5) int frequency(Collection, Object): 返回指定集合中指定元素的出現(xiàn)次數(shù)
6) void copy(List dest,List src):將src中的內(nèi)容復(fù)制到dest中文章來源:http://www.zghlxwxcb.cn/news/detail-737254.html
7) boolean replaceAll(List list, Object oldVal, Object newVal):使用新值替換List 對象的所有舊值文章來源地址http://www.zghlxwxcb.cn/news/detail-737254.html
public class Collections_ {
public static void main(String[] args) {
//創(chuàng)建ArrayList 集合,用于測試.
List list = new ArrayList();
list.add("tom");
list.add("smith");
list.add("king");
list.add("milan");
list.add("tom");
// reverse(List):反轉(zhuǎn) List 中元素的順序
Collections.reverse(list);
System.out.println("list=" + list);
// shuffle(List):對 List 集合元素進行隨機排序
for (int i = 0; i < 5; i++) {
Collections.shuffle(list);
System.out.println("list=" + list);
}
// sort(List):根據(jù)元素的自然順序?qū)χ付?List 集合元素按升序排序
Collections.sort(list);
System.out.println("自然排序后");
System.out.println("list=" + list);
//sort(List,Comparator):根據(jù)指定的 Comparator 產(chǎn)生的順序?qū)?List 集合元素進行排序
//我們希望按照 字符串的長度大小排序
Collections.sort(list, new Comparator() {
@Override
public int compare(Object o1, Object o2) {
//可以加入校驗代碼.
return ((String) o2).length() - ((String) o1).length();
}
});
System.out.println("字符串長度大小排序=" + list);
// swap(List,int, int):將指定 list 集合中的 i 處元素和 j 處元素進行交換
//比如
Collections.swap(list, 0, 1);
System.out.println("交換后的情況");
System.out.println("list=" + list);
//Object max(Collection):根據(jù)元素的自然順序,返回給定集合中的最大元素
System.out.println("自然順序最大元素=" + Collections.max(list));
//Object max(Collection,Comparator):根據(jù) Comparator 指定的順序,返回給定集合中的最大元素
//比如,我們要返回長度最大的元素
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);
//Object min(Collection)
//Object min(Collection,Comparator)
//上面的兩個方法,參考max即可
//int frequency(Collection,Object):返回指定集合中指定元素的出現(xiàn)次數(shù)
System.out.println("tom出現(xiàn)的次數(shù)=" + Collections.frequency(list, "tom"));
//void copy(List dest,List src):將src中的內(nèi)容復(fù)制到dest中
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);
//boolean replaceAll(List list,Object oldVal,Object newVal):使用新值替換 List 對象的所有舊值
//如果list中,有tom 就替換成 湯姆
Collections.replaceAll(list, "tom", "湯姆");
System.out.println("list替換后=" + list);
}
}
到了這里,關(guān)于【JAVA學(xué)習(xí)筆記】 56 - 開發(fā)中如何選擇集合實現(xiàn)類,以及Collection工具類的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!