Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

จะใช้การดำเนินการสตรีมระดับกลางใน JShell ใน Java 9 ได้อย่างไร


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