Stream是JDK 8中的一項新特性,它可以優雅地處理集合和數組中的數據,它的開發者想像力豐富,為我們的編程帶來了很多驚喜。Stream API提供了很多有用的操作方法,其中就包括可以截取List的功能,並提供了非常豐富的用法。本文將對stream截取list進行多方面的闡述。
一、從stream截取List中每個字元串
List list = Arrays.asList("apple", "banana", "orange", "pear"); List resultList = list.stream().map(String::toUpperCase).collect(Collectors.toList());
在上述代碼中,我們運用了map()方法,將List中的所有元素轉換為大寫字元串,並將它們收集到另外一個List中。在這個過程中,我們對List進行了截取,並且傳入了一個lambda表達式作為參數,在lambda表達式中使用了String類的toUpperCase()方法將元素轉換為大寫字元串。
二、Stream截取List的最後5個元素
List list = Arrays.asList("apple", "banana", "orange", "pear"); List resultList = list.stream().skip(list.size()-5).collect(Collectors.toList());
代碼中我們遵循了思路,從List中跳過前n個元素,然後從「n」位置開始獲取元素,並把這些元素放進另一個List中。這裡,我們調用了skip()方法,跳過前面的元素,取得最後5個元素。在List介面中,有一個size()方法,該方法返回List的大小。我們用它來獲取總共有多少個元素,並計算出在List中從哪個位置開始只取最後5個元素。
三、Stream取集合中的最大值
List list = Arrays.asList(1, 2, 3, 4, 5, 6); Optional max = list.stream().max(Integer::compare);
通過使用max()方法,我們可以找到集合中的最大值。在上述代碼中,我們定義了一個List,然後使用Integer類的compare()方法作為參數,找到了最大值,並將其賦值給了一個Optional對象。
四、Stream截取數據
List list = Arrays.asList(1, 2, 3, 4, 5, 6); List resultList = list.stream().filter(e -> e > 2).filter(e -> e < 5).collect(Collectors.toList());
在上述代碼中,我們使用了filter()方法,過濾了出部分數據作為結果。我們首先使用了一個lambda表達式來找到大於2的數,然後使用了另一個lambda表達式來找到小於5的數,並將這些數字收集到另一個List中。這個時候,我們就得到了List中滿足我們條件的元素。
五、Stream獲取最大值
List list = Arrays.asList(1, 2, 3, 4, 5, 6); int maxValue = list.stream().max(Integer::compare).get();
我們通過上述代碼來獲取List中的最大值。我們使用max()方法,找到最大值,並將其賦值給了一個Optional對象。但是,這個時候它還沒有被強制轉換成int類型。我們調用了Optional對象的get()方法,將其轉換成int類型,並將其賦值給了一個變數。
六、Stream截取字元串
List list = Arrays.asList("apple", "banana", "orange", "pear"); List resultList = list.stream().filter(e -> e.contains("r")).collect(Collectors.toList());
我們可以使用filter()方法來截取字元串。在這個例子中,我們截取了包含』r』的字元串,並將這些字元串放入另一個List中。
七、Stream軟體
我們剛才對Stream進行了非常精細的闡述。不過, 如果你感到Stream並不是很好理解並且覺得它太複雜,有一些Stream軟體可以方便開發者進行測試等操作的。舉例來說,Dzone就提供了一個用於測試Stream中方法的在線Stream測試工具,它可以讓你運行一些簡單的代碼來測試Stream的各種特性。
八、stream取集合第10個對象
List list = Arrays.asList(1, 2, 3, 4, 5, 6); Optional result = list.stream().skip(9).findFirst();
我們可以通過使用skip()跳過前面九個元素,然後獲取List中的第十個元素。
總結
在本文中,我們從不同的角度闡述了stream截取list,並多次用到了Java 8中的Stream API。通過使用Stream,我們可以優雅地操作各種數據結構。通過本文,我們可以看到,Stream非常適合處理大數據,而且在使用時非常簡單、直觀和靈活。隨著stream的使用越來越廣泛,我們相信你也可以更快、更方便地處理集合和數組中的數據。
原創文章,作者:IRNX,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/149037.html