一、什麼是Java List Stream?
Java中的Stream是處理列表(List)數據的機制之一。它是一種用於處理集合數據的高級抽象,可以定義各種管道操作(例如過濾、查找、轉換等)來對集合數據進行操作。
在Java 8 中,對於List,我們可以使用 stream() 方法,將其轉換為 Stream 對象,然後就可以使用該對象上的各種操作了。
例如,下面展示了如何在List中使用過濾器 (filter) 方法。
import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class ListStreamExample { public static void main(String[] args) { List list = Arrays.asList("apple", "banana", "cherry", "durian", "elderberry"); // 過濾出字符串長度大於 5 的元素 List filteredList = list.stream() .filter(s -> s.length() > 5) .collect(Collectors.toList()); System.out.println(filteredList); // 輸出:[cherry, elderberry] } }
二、Java List Stream的常用操作
1. 過濾 (filter)
過濾器 (filter) 是Stream重要的一個操作,可以通過制定一個條件來過濾集合中不符合條件的對象。
在下面的代碼中,我們使用 filter 操作過濾出字符串長度大於 5 的元素。
public static void main(String[] args) { List list = Arrays.asList("apple", "banana", "cherry", "durian", "elderberry"); // 過濾出字符串長度大於5的元素 List filteredList = list.stream() .filter(s -> s.length() > 5) .collect(Collectors.toList()); System.out.println(filteredList); // 輸出:[cherry, elderberry] }
2. 轉換 (map)
轉換操作 (map) 可以將一個集合轉換為另一個集合,可以是類型轉換或者屬性轉換。在下面的代碼中,我們將一個 Integer 類型的 List 轉化成一個 Double 類型的 List。
public static void main(String[] args) { List list = Arrays.asList(1, 2, 3, 4, 5); // 將Integer List 轉化為 Double List List doubleList = list.stream() .map(i -> i * 0.1) .collect(Collectors.toList()); System.out.println(doubleList); // 輸出:[0.1, 0.2, 0.3, 0.4, 0.5] }
3. 排序 (sorted)
對於Java的List,排序 (sorted) 是一個非常常見的操作。我們可以使用 sorted 方法對集合進行排序。
public static void main(String[] args) { List list = Arrays.asList(5, 3, 1, 4, 2); // 對數字List進行排序 List sortedList = list.stream() .sorted() .collect(Collectors.toList()); System.out.println(sortedList); // 輸出:[1, 2, 3, 4, 5] }
4. 去重 (distinct)
我們在對集合進行操作的時候,常常需要把其中的重複元素去重。distinct 操作就是用於去重的,會保留集合中唯一的元素。
下面的代碼中,我們將一個有重複元素的 List 進行去重操作。
public static void main(String[] args) { List list = Arrays.asList(1, 2, 2, 3, 3, 3, 4, 4, 4, 4); // 去重操作 List distinctList = list.stream() .distinct() .collect(Collectors.toList()); System.out.println(distinctList); // 輸出:[1, 2, 3, 4] }
三、總結
Java List Stream 為開發者提供了一種更加直觀的方式對集合進行處理,需要我們熟練使用這些操作方法來提高程序的開發效率。本篇文章介紹了 Java List Stream 的基礎操作,包括過濾 (filter)、轉換 (map)、排序 (sorted)、去重 (distinct) 等方法。希望對Java 開發人員有所幫助。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/282809.html