官术网_书友最值得收藏!

1.5 其他的流轉換

distinct方法會返回一個流,它的元素是從原有流中產生的,即原來的元素按照同樣的順序剔除重復元素后產生的。這個流顯然能夠記住它已經看到過的元素。

對于流的排序,有多種sorted方法的變體可用。其中一種用于操作Comparable元素的流,而另一種可以接受一個Comparator。下面,我們對字符串排序,使得最長的字符串排在最前面:

與所有的流轉換一樣,sorted方法會產生一個新的流,它的元素是原有流中按照順序排列的元素。

當然,我們在對集合排序時可以不使用流。但是,當排序處理是流管道的一部分時,sorted方法就會顯得很有用。

最后,peek方法會產生另一個流,它的元素與原來流中的元素相同,但是在每次獲取一個元素時,都會調用一個函數。這對于調試來說很方便:

當實際訪問一個元素時,就會打印出來一條消息。通過這種方式,你可以驗證iterate返回的無限流是被惰性處理的。

對于調試,你可以讓peek調用一個你設置了斷點的方法。

java.util.stream.Stream 8

·Stream<T>distinct()

產生一個流,包含當前流中所有不同的元素。

·Stream<T>sorted()

·Stream<T>sorted(Comparator<?super T>comparator)

產生一個流,它的元素是當前流中的所有元素按照順序排列的。第一個方法要求元素是實現了Comparable的類的實例。

·Stream<T>peek(Consumer<?super T>action)

產生一個流,它與當前流中的元素相同,在獲取其中每個元素時,會將其傳遞給action。

主站蜘蛛池模板: 双桥区| 兰考县| 霞浦县| 大田县| 米脂县| 昭苏县| 长岛县| 白水县| 芦山县| 西吉县| 登封市| 庆城县| 鸡泽县| 沙田区| 嘉鱼县| 旅游| 江山市| 甘肃省| 高唐县| 泰安市| 景谷| 大化| 二连浩特市| 宿迁市| 马边| 梁平县| 阜宁县| 泰来县| 四会市| 沾化县| 江安县| 孝感市| 荣成市| 临安市| 秭归县| 和顺县| 封开县| 三原县| 岫岩| 长汀县| 沂源县|