สมมติมี Iterable ดังนี้:
Iterable<String> i = Arrays.asList("K", "L", "M", "N", "O", "P");
สร้าง Stream จาก Iterable ด้วย Custom Method convertIterable():
public static <T> Stream<T> convertIterable(Iterable<T> iterable) {
return StreamSupport.stream(iterable.spliterator(), false);
}
ตัวอย่างโค้ดเต็ม
import java.util.*;
import java.util.stream.*;
public class Demo {
public static <T> Stream<T> convertIterable(Iterable<T> iterable) {
return StreamSupport.stream(iterable.spliterator(), false);
}
public static void main(String[] args) {
Iterable<String> i = Arrays.asList("K", "L", "M", "N", "O", "P");
Stream<String> s = convertIterable(i);
System.out.println("Iterable to Stream: " + s.collect(Collectors.toList()));
}
}
ผลลัพธ์
Iterable to Stream: [K, L, M, N, O, P]
คำอธิบาย: Iterable.spliterator() คืน Spliterator แล้ว StreamSupport.stream() สร้าง Stream จาก Spliterator Parameter ที่ 2 (false) = Parallel = false