日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jdk中提供的Collection、Collections、Collector、Collectors你分的清楚?

發布時間:2025/3/12 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jdk中提供的Collection、Collections、Collector、Collectors你分的清楚? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

初次一看四個有點相似,而且有些時候一不小心還真有可能敲錯,因為喜歡代碼提示沒仔細看提示,結果通過.去調用結果發現沒有找到你想用的方法。所以寫代碼的時候需要注意一點這個區別

Collections.emptyList(); Collectors.toMap(......);//所在包分別為 import java.util.Collections; import java.util.stream.Collectors;

Collection是集合類的一個接口,定義了集合的一些規范方法
Collections是一個集合工具類,本身沒有實現Collection接口,而是內部類實現了Collection接口,它的作用就是封裝常用的集合操作。

public static void main(String[] args) {ArrayList<Integer> integers = new ArrayList<>();// 一個集合實現類List<Integer> numbers = Collections.synchronizedList(integers);// 得到加鎖集合numbersCollections.sort(integers);// 集合元素排序Integer max = Collections.max(integers);//得到集合中最大值... // 省略其它集合操作,具體有哪些功能看源碼即可 }

Collectors是一個收集器工具類,常用于流操作中。如下一般我們通過數據庫中得到集合數據,經過一系列流操作,得到的一個新流可以使用collect(Collectors.toList())將過濾轉換好的流元素收集起來。
而Collector的作用,類比上面Collections與Collection的作用,定義收集流元素的規范,流中的collect()方法傳入的都是一個Collector接口,然后Collectors工具類中的方法返回值也是這個接口,這樣就可以很方便的利用java8的新特性方法引用,如下的使用方式

public static void main(String[] args) {List<Integer> lists = Stream.of(1, 2, 3).collect(Collectors.toList()); }


Collections:它的出現給集合操作提供了更多的功能。這個類不需要創建對象,內部提供的都是靜態方法。

靜態方法:

Collections.sort(list);//list集合進行元素的自然順序排序。Collections.sort(list,new ComparatorByLen());//按指定的比較器方法排序。public class ComparatorByLen implements Comparator<String>{public int compare(String s1,String s2){int temp = s1.length()-s2.length();return temp==0?s1.compareTo(s2):temp;} } Collections.max(list); //返回list中字典順序最大的元素。int index = Collections.binarySearch(list,"zz");//二分查找,返回角標。Collections.reverseOrder();//逆向反轉排序。Collections.shuffle(list);//隨機對list中的元素進行位置的置換。

將非同步集合轉成同步集合的方法:Collections中的 XXX synchronizedXXX(XXX);

List synchronizedList(list);Map synchronizedMap(map);

原理:定義一個類,將集合所有的方法加同一把鎖后返回。

Collection Collections的區別:

Collections是個java.util下的類,是針對集合類的一個工具類,提供一系列靜態方法,實現對集合的查找、排序、替換、線程安全化(將非同步的集合轉換成同步的)等操作。

Collection是個java.util下的接口,它是各種集合結構的父接口,繼承于它的接口主要有Set和List,提供了關于集合的一些操作,如插入、刪除、判斷一個元素是否其成員、遍歷等

總結

以上是生活随笔為你收集整理的jdk中提供的Collection、Collections、Collector、Collectors你分的清楚?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。