在 Java 中將 Stream 轉換為列表
Mohammad Irfan
2023年1月30日
2022年4月22日
-
在 Java 中使用
collect()
方法將流轉換為列表 -
在 Java 中使用
toCollection()
方法將流轉換為列表 -
在 Java 中使用
forEach()
方法將流轉換為列表 -
在 Java 中使用
toArray()
方法將流轉換為列表
本教程介紹了 Java 中 Stream
到 List 的轉換。
Stream 是物件的集合。Stream 不儲存任何資料,因此它不是資料結構。
Stream
被新增到 Java 8 版本中,而 List 是一個儲存有序集合的介面。在本教程中,我們將研究將 Stream 轉換為 List。
Java 有以下方法可以用來完成我們的任務:
- 使用
collect()
方法進行轉換 - 使用
toCollection()
方法進行轉換 - 使用
forEach()
方法進行轉換 - 使用
toArray()
方法進行轉換
在 Java 中使用 collect()
方法將流轉換為列表
Stream collect()
操作是一個終端操作。終端操作意味著 Stream 已被消費並且在此操作之後無法進一步使用。
這個方法的語法是:
collect(Collector<? super T,A,R> collector)
此方法將 Collector
物件作為引數。
Collector 類用於將 Stream 的元素收集到一個集合中。此類具有 toList()
方法,可將 Stream 轉換為 List。
現在讓我們看一個程式碼示例:
import java.util.*;
import java.util.stream.Stream;
import java.util.stream.Collectors;
public class SimpleTesting {
public static void main(String args[]) {
// declaring a stream
Stream<String> furnitures = Stream.of("chair", "dinning table", "study table", "coffee table", "sofa");
// changing stream to list
List<String> furniture_list = furnitures.collect(Collectors.toList());
//printing the list
for(String furniture: furniture_list){
System.out.println(furniture);
}
}
}
輸出:
chair
dinning table
study table
coffee table
sofa
在 Java 中使用 toCollection()
方法將流轉換為列表
此示例與上一個示例類似,只是我們使用了 Collector.toList()
方法而不是 Collectors.toCollection()
方法。
Collector
類有一個名為 toCollection()
的方法,該方法返回一個 Collector
,它將輸入項按照遇到的順序收集到一個新的 Collection 中。看下面的示例程式碼:
import java.util.*;
import java.util.stream.Stream;
import java.util.stream.Collectors;
public class SimpleTesting {
public static void main(String args[]) {
// declaring a stream
Stream<String> furnitures = Stream.of("chair", "dinning table", "study table", "coffee table", "sofa");
// changing stream to list
List<String> furniture_list = furnitures.collect(Collectors.toCollection(ArrayList::new));
//printing the list
for(String furniture: furniture_list){
System.out.println(furniture);
}
}
}
輸出:
chair
dinning table
study table
coffee table
sofa
在 Java 中使用 forEach()
方法將流轉換為列表
在這個例子中,我們首先建立了一個空的 ArrayList,然後使用 forEach()
方法將每個 Stream 元素一個一個新增到 List 中。Stream
有一個名為 forEach()
的方法,它對輸入 Stream 的所有元素執行。
看下面的示例程式碼:
import java.util.*;
import java.util.stream.Stream;
import java.util.stream.Collectors;
public class SimpleTesting {
public static void main(String args[]) {
// declaring a stream
Stream<String> furnitures = Stream.of("chair", "dinning table", "study table", "coffee table", "sofa");
// declaring an empty arraylist
ArrayList<String> furniture_list = new ArrayList<>();
// adding elements one by one
furnitures.forEach(furniture_list::add);
//printing the list
for(String furniture: furniture_list){
System.out.println(furniture);
}
}
}
輸出:
chair
dinning table
study table
coffee table
sofa
在 Java 中使用 toArray()
方法將流轉換為列表
在這個例子中,我們首先使用 toArray()
方法將 Stream
轉換為一個陣列。之後,我們使用 asList()
方法將新建立的陣列轉換為 List 以獲取列表。
看下面的程式碼:
import java.util.*;
import java.util.stream.Stream;
import java.util.stream.Collectors;
public class SimpleTesting {
public static void main(String args[]) {
// declaring a stream
Stream<String> furnitures = Stream.of("chair", "dinning table", "study table", "coffee table", "sofa");
// converting stream to array
String[] furniture_array = furnitures.toArray(String[]::new);
// converting array to list
List<String> furniture_list = Arrays.asList(furniture_array);
//printing the list
for(String furniture: furniture_list){
System.out.println(furniture);
}
}
}
輸出:
chair
dinning table
study table
coffee table
sofa
相關文章 - Java Stream
- Java 中的 Stream 的 reduce 操作
- Java 中的流過濾器
- Java 中的 findFirst 流方法
- 在 Java 中將 Stream 元素轉換為對映
- Java 中的 flatMap
- 在 Java 中把陣列轉換為流