[英]Java 8 forEach use cases
假設你有一個帶有一些字符串的集合,你想要返回每個字符串的前兩個字符(或其他一些操作......)。
在Java 8中,對於這種情況,您可以使用stream()中的map
或forEach
方法從集合中獲取(可能是其他東西,但現在不重要)。
我個人會主要使用map
因為我將forEach
與變異集合聯系起來,我想避免這種情況。 我還創建了一個關於性能的非常小的測試但在使用forEach
時看不到任何改進(我完全理解小測試不能給出可靠的結果但仍然)。
那么什么是用例,其中一個應該選擇forEach
?
map
是更好的選擇,因為你還沒有嘗試對字符串做任何事情,只需將它們映射到不同的字符串。
forEach
旨在成為“最終操作”。 因此,它不返回任何東西,而是關於改變一些狀態 - 盡管不一定是原始集合的狀態。 例如,您可以使用它將元素寫入文件,使用其他構造(包括map
)來獲取這些元素。
forEach
終端操作在以下幾種情況下可能很有用:當你想要收集到一些你沒有合適收集器的舊類或者你根本不想收集時,但是在外面某處發送數據時(寫)進入數據庫,打印到OutputStream
等)。 在許多情況下,最好的方法是使用map
(作為中間操作)和forEach
(作為終端操作)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.