ไม่จำเป็นต้องใช้วิธีการช่วยเหลือจากคำตอบที่ยอมรับ ลำธารสามารถใช้กับ lambdas หรือสั้นลงโดยใช้มักจะวิธีการอ้างอิง สตรีมเปิดใช้งานฟังก์ชันการทำงาน map()
แปลงองค์ประกอบและcollect(...)
หรือtoArray()
รวมสตรีมสำรองไว้ในอาร์เรย์หรือคอลเลกชัน
การพูดคุย (วิดีโอ) ของ Venkat Subramaniamอธิบายได้ดีกว่าฉัน
1 แปลงList<String>
เป็นList<Integer>
List<String> l1 = Arrays.asList("1", "2", "3");
List<Integer> r1 = l1.stream().map(Integer::parseInt).collect(Collectors.toList());
// the longer full lambda version:
List<Integer> r1 = l1.stream().map(s -> Integer.parseInt(s)).collect(Collectors.toList());
2 แปลงList<String>
เป็นint[]
int[] r2 = l1.stream().mapToInt(Integer::parseInt).toArray();
3 แปลงString[]
เป็นList<Integer>
String[] a1 = {"4", "5", "6"};
List<Integer> r3 = Stream.of(a1).map(Integer::parseInt).collect(Collectors.toList());
4 แปลง String[]
เป็นint[]
int[] r4 = Stream.of(a1).mapToInt(Integer::parseInt).toArray();
5 แปลง String[]
เป็นList<Double>
List<Double> r5 = Stream.of(a1).map(Double::parseDouble).collect(Collectors.toList());
6 (โบนัส) แปลง int[]
เป็นString[]
int[] a2 = {7, 8, 9};
String[] r6 = Arrays.stream(a2).mapToObj(Integer::toString).toArray(String[]::new);
แน่นอนว่ามีรูปแบบอื่น ๆ อีกมากมาย
ดูเวอร์ชันของ Ideone ของตัวอย่างเหล่านี้ด้วย สามารถคลิก fork แล้วเรียกใช้เพื่อรันในเบราว์เซอร์
Lists.transform()
ไฟล์.