jdk中提供的Collection、Collections、Collector、Collectors你分的清楚?
初次一看四個有點相似,而且有些時候一不小心還真有可能敲錯,因為喜歡程式碼提示沒仔細看提示,結果通過.
去呼叫結果發現沒有找到你想用的方法。所以寫程式碼的時候需要注意一點這個區別
Collection是集合類的一個介面,定義了集合的一些規範方法
Collections是一個集合工具類,本身沒有實現Collection介面,而是內部類實現了Collection介面,它的作用就是封裝常用的集合操作。
public static void main(String[] args) {
ArrayList<Integer> integers = new ArrayList<>();// 一個集合實現類
List<Integer> numbers = Collections.synchronizedList(integers);// 得到加鎖集合numbers
Collections.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());
}
相關文章
- collection和collections的區別
- JDK12 Collectors.teeing 你真的需要了解一下JDK
- java.util.Collection集合方法:Collections.BinarySearch 方法Java
- Collections工具類,可以使用collections工具類對程式碼中的list進行分組
- Hive on Spark和Spark sql on Hive,你能分的清楚麼HiveSparkSQL
- Hive on Spark 和 Spark sql on Hive,你能分的清楚麼HiveSparkSQL
- JDK提供的原子類操作及原理JDK
- 你對Collection中Set、List、Map理解?
- 那些jdk中坑你沒商量的方法JDK
- JDK提供的四種執行緒池JDK執行緒
- Java中的深淺拷貝問題,你清楚嗎?Java
- 資料倉儲分層你清楚了嗎
- Python中的collections.Counter模組Python
- 徹底搞清楚ConcurrentHashMap的實現原理(含JDK1.7和JDK1.8的區別)HashMapJDK
- 【Java X 原始碼剖析】Collection的原始碼分析-JDK1.8-仍在更新Java原始碼JDK
- Collectors.toMap的幾個注意點
- 深入理解Java中的Garbage CollectionJava
- Commons Collections2分析
- Commons Collections1分析
- 【搞定面試官】談談你對JDK中Executor的理解?面試JDK
- 你必須搞清楚的String,StringBuilder,StringBufferUI
- 當心 Collection 的 slice 方法,它會偷偷修改你的陣列陣列
- Ysoserial Commons Collections7分析
- Ysoserial Commons Collections3分析S3
- Ysoserial Commons Collections2分析
- list 列表(屬於集合collection中的一種)
- 阿里讓你更清楚的認識自己的Python基礎阿里Python
- 阿里讓你更清楚的認識自己的Java基礎阿里Java
- java GC CollectorJavaGC
- Opentelemetry collector用法
- 弄清楚,你要的到底是什麼
- 你知道Laravel Collection的實際使用場景有哪些嗎?Laravel
- Stream.toList()和Collectors.toList()的效能比較
- Java中Stream的teeing()方法用於處理合並兩個Collector - foojayJava
- Python中Collections.counter用法Python
- Java12 Collectors.teeing 你真的需要了解一下Java
- 我的Android開發框架Collection(持續更新中)Android框架
- Collection集合的遍歷