JShell เป็นเครื่องมือที่แนะนำใน Java 9 และยอมรับคำสั่งง่ายๆ เช่น นิพจน์ ตัวแปร เมธอด คลาส ฯลฯ เป็นอินพุตและให้ผลลัพธ์ทันที
A สตรีม เป็นลำดับของค่า การดำเนินการสตรีมระดับกลาง เป็นการดำเนินการที่ใช้กระแส ตัวอย่างเช่น สามารถใช้กับนิพจน์แลมบ์ดาและสร้างกระแสขององค์ประกอบอื่นตามผลลัพธ์ได้
การดำเนินการสตรีมระดับกลางที่ได้รับความนิยมมากที่สุดมีการกล่าวถึงด้านล่าง:
- 1) sorted(): วิธีนี้จะรักษาองค์ประกอบของสตรีมที่บริโภคเป็นผล แต่ยังจัดเรียงลำดับตามธรรมชาติอีกด้วย
- 2) ความแตกต่าง (): เมธอดนี้ส่งคืนสตรีมโดยเก็บเฉพาะองค์ประกอบที่ไม่ซ้ำของอินพุตสตรีม และสามารถรักษาลำดับสัมพัทธ์ขององค์ประกอบที่เก็บรักษาไว้ได้
- 3) ตัวกรอง (): วิธีนี้สามารถใช้เพื่อกรององค์ประกอบสตรีมตามตรรกะบางอย่างได้
- 4) แผนที่(): วิธีนี้ใช้นิพจน์แลมบ์ดาเพื่อคำนวณผลลัพธ์ใหม่จากองค์ประกอบสตรีมอินพุต จากนั้นจะส่งคืนสตรีมของผลลัพธ์เหล่านี้เป็นเอาต์พุต
ในข้อมูลโค้ดด้านล่าง เราสามารถใช้การดำเนินการสตรีมระดับกลางต่างๆ ในเครื่องมือ JShell ได้
ตัวอย่าง
jshell> List<Integer> numbers = List.of(3, 10, 23, 200, 77, 9, 32); numbers ==> [3, 10, 23, 200, 77, 9, 32] jshell> numbers.stream().sorted().forEach(elem -> System.out.println(elem)); 3 9 10 23 32 77 200 jshell> List<Integer> numbers = List.of(3, 5, 54, 280, 5, 9, 40); numbers ==> [3, 5, 54, 280, 5, 9, 40] jshell> numbers.stream().distinct().forEach(elem -> System.out.println(elem)); 3 5 54 280 9 40 jshell> numbers.stream().distinct().sorted().forEach(elem -> System.out.println(elem)); 3 5 9 40 54 280 jshell> numbers.stream().distinct().map(num -> num * num).forEach(elem -> System.out.println(elem)); 9 25 2916 78400 81 1600